Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Nhờ mọi người giải thích về DSLK

  1. #1
    Ngày gia nhập
    03 2007
    Nơi ở
    Nhà hát của những giấc mơ
    Bài viết
    33

    Mặc định Nhờ mọi người giải thích về DSLK

    Mình lấy bài của bạn iamvtn , bài có giải thích nhưng có chỗ ko nói nên mình chẳng hiểu gì , mong mọi người giải thích giùm (sắp thi rồi)

    Code:
    #include <iostream.h>
    #include <conio.h>
    #include <stdlib.h>
    
    class Node
    {
       public:
       	  float data;
          Node *next;
          Node()
          { data =-1; next= 0 ;}
          Node (float a)
          {
           	data = a; next = NULL;
          }
    };
    
    class list
    {
     	private:
       	Node * head;
        public:
       		list()
            {
          		head = NULL;
            }
             void chendau(float x)
             {
           		  Node * p = head;  // cho p tro vao head
           		  Node * newnode = new Node(x);
           		  if(head == NULL)
            	 {
              		head = newnode;
             	 }
    	         else
    	         {
    	         	head = newnode ; //cho head tro vao newnode
    	         	head->next = p; // cho next cua head tro den p
    	         }
          }
    
          void show()// Ham hien thi
          {
          	 Node * p = head; // cho p = head
             if( head != NULL)
             {
             	while(p != NULL)  //kiem tra den chung nao p = Null
                {
                 	cout<<p->data<<"  ";// hien ra data cua p
                   p = p->next; // lai cho no tro den node tiep theo;
                }
             }
          }
    };
    
    int main()
    {
    	system("color 3e");
    	float x;
    	cout<<"Nhap gia tri ma ban muon chen: ";
       cin>>x;
       list asd;
       asd.chendau(1.2); //chen vao dau danh sach
       asd.chendau(x);
       asd.chendau(34);
       asd.show();
       getch();
    }
    Cảm ơn iamvtn nhiều

  2. #2
    Ngày gia nhập
    04 2007
    Bài viết
    134

    Ủa, vậy bạn ko hiểu chỗ nào?

  3. #3
    Ngày gia nhập
    03 2007
    Nơi ở
    Nhà hát của những giấc mơ
    Bài viết
    33

    Mọi người có thể giải thích rõ phần này được ko , thank

    Code:
    list()
            {
          		head = NULL;
            }
    Code:
             void chendau(float x)
             {
           		  Node * p = head;  // cho p tro vao head
           		  Node * newnode = new Node(x);
           		  if(head == NULL)
            	 {
              		head = newnode;
             	 }
    	         else
    	         {
    	         	head = newnode ; //cho head tro vao newnode
    	         	head->next = p; // cho next cua head tro den p
    	         }
          }

  4. #4
    Ngày gia nhập
    04 2007
    Bài viết
    134

    PHP Code:
    list()
            {
                  
    head NULL;
            } 
    Cái này là constuctor, head là con trỏ chỉ đến node đầu tiên của danh sách, lúc mới tạo danh sách thì chưa có node nào hết, head chỉ vào NULL


    PHP Code:
             void chendau(float x)
             {
                     
    Node head;  // cho p tro vao head
                     
    Node newnode = new Node(x);
                     if(
    head == NULL)
                 {
                      
    head newnode;
                  }
                 else
                 {
                     
    head newnode //cho head tro vao newnode
                     
    head->next p// cho next cua head tro den p
                 
    }
          } 
    Hàm này là thêm 1 node có giá trị x vào đầu danh sách, theo tui nên viết thế này cho gọn
    PHP Code:
             void chendau(float x)
             {
                     
    Node head;  // cho p tro vao head
                     
    Node newnode = new Node(x);

                     
    head newnode //cho head tro vao newnode
                     
    head->next p// cho next cua head tro den p
        
          

    Caí này bác đọc code ko hiểu thì có thể lấy giấy ra vẽ hình thì dễ hiểu hơn. Bác cứ tưởng tượng là hàm này sẽ tạo 1 node mới với giá trị x bằng lệnh Node * newnode = new Node(x);, node này dc chèn vào đầu danh sách nên head sẽ chỉ vào node này head = newnode. Cuối cùng để danh sách dc liên tục thì node mới tạo ra phải chỉ đến node kế tiếp, node kế tiếp chính là node đầu danh sách mà head chỉ đến trước đó Node * p = head;... head->next = p;

  5. #5
    Ngày gia nhập
    03 2007
    Nơi ở
    Nhà hát của những giấc mơ
    Bài viết
    33

    Lệnh nầy có nghĩa gì hả bạn : head->next = p; thank

  6. #6
    Ngày gia nhập
    04 2007
    Bài viết
    134

    Mặc định Nhờ mọi người giải thích về DSLK

    Lệnh đó là lệnh gán, nghĩa là trỏ head->next đến nơi mà p đang trỏ đến.

    Cuối cùng để danh sách dc liên tục thì node mới tạo ra phải chỉ đến node kế tiếp, node kế tiếp chính là node đầu danh sách mà head chỉ đến trước đó Node * p = head;... head->next = p;
    . .

  7. #7
    Ngày gia nhập
    03 2007
    Nơi ở
    Nhà hát của những giấc mơ
    Bài viết
    33

    Mặc định Cái này ko rõ lắm , bạn giải thích lại cái nhé

    Cuối cùng để danh sách dc liên tục thì node mới tạo ra phải chỉ đến node kế tiếp, node kế tiếp chính là node đầu danh sách mà head chỉ đến trước đó Node * p = head;... head->next = p;
    Mình ko rõ đoạn này , mọi người có thể giải thích rõ cho mình cái

  8. #8
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Viết ra giấy thì khó hình dung lắm mình nghĩ viết ra thế kia là rõ lắm rồi. Bạn lấy giấy ra vẽ hình lại thì mới hiểu được thế nhá. Cái này nếu cảm thấy khó hiểu thì phải có người chỉ tận nơi nói trực tiếp cơ (Cô giáo tớ giảng xa sả mà vẫn có bạn không hiểu nổi đấy)
    In code we trust

Các đề tài tương tự

  1. Đếm số tác giả trong DSLK không được
    Gửi bởi ndthien92 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 11-11-2013, 09:57 PM
  2. DSLK các giải thuật sắp xếp và tìm kiếm
    Gửi bởi soda_chanhmuoi trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 6
    Bài viết cuối: 15-11-2011, 10:31 AM
  3. Các giải thuật sắp xếp trong DSLK. Giúp mình với?
    Gửi bởi thai.co trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 26-10-2010, 10:48 PM
  4. Giải thuật MergeSort bằng DSLK
    Gửi bởi thesun140188 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 16-04-2009, 12:31 PM
  5. Tính giao, hợp,và hiệu của hai tập hợp dùng DSLK
    Gửi bởi changtrai050188 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 18-12-2007, 03:28 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn