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

Đề tài: Danh sách liên kết C++ ??

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    5

    Mặc định Danh sách liên kết C++ ??

    Mình có 1 đoạn mã này nhờ các bạn xem giùm: Mình muốn nhập vào 1 danh sách số nguyên và in ra chúng

    Code:
    #include <iostream>
     #include <conio.h>
     
     using namespace std;
     //====== Câu trúc dữ liệu
     struct	NODE
     {
     	int info;
     	NODE *link;	
     };
     
     class linklist
     {
     	NODE *head;
     	
     	public:
     		//===== Hàm khởi tạo 
     		linklist(){
     				head = NULL;
     			}			
     		//==== Tạo node mới
     		NODE *getnode(int x)
     		{
     			NODE *p;
     			p = new NODE;
     			if (p==NULL)	return NULL;
     			p->info = x;
     			p->link = NULL ;
     			return p;
     		}								
     		//==== In danh sách
     		void *print()
     		{
     			NODE *p;
     			p = head;
     			while(p!=NULL)	
     			{
     				cout<<p->info<<" ";
     				p = p->link;	
     			}
     		}
     };
     
     main()
     {	
     	int n,i,x;
     	linklist L;
     	
     	cout<<"Can nhap bao nhieu phan tu:  ";	cin>>n;
     	cout<<"Nhap cac phan tu: \n";	
     	for (i=0; i<n; i++)
     	{
     		cout<<"Phan tu "<<i+1<<" :  ";	cin>>x;
     		L.getnode(x);		
     	}
     	
     	cout<<"Cac phan tu vua nhap:  ";	
     	L.print();	
     	
     	getch ();	
     }
    Khi mình dùng hàm print() để in ra danh sách nhưng không ra kết quả là sao vậy. Nhờ các bạn xem giùm mình ??

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn sửa lại thế này :

    C Code:
    1. #include <iostream>
    2. #include <conio.h>
    3.  
    4. using namespace std;
    5.  
    6. struct  NODE
    7. {
    8.     int info;
    9.     NODE *link;
    10. };
    11.  
    12.  class linklist
    13.  {
    14.     NODE *head;
    15.    
    16.     public:
    17.         linklist()
    18.         {
    19.             head = NULL;
    20.         }
    21.        
    22.         NODE *getnode(int x)
    23.         {
    24.             if (head == NULL)
    25.             {
    26.                 head = new NODE();
    27.  
    28.                 if (head == NULL)
    29.                     return NULL;
    30.  
    31.                 head->info = x;
    32.                 head->link = NULL;
    33.  
    34.                 return head;
    35.             }
    36.             else
    37.             {
    38.                 NODE *p = head->link, *pprev = head;
    39.  
    40.                 while (p != NULL)
    41.                 {
    42.                     pprev = p;
    43.                     p = p->link;
    44.                 }
    45.            
    46.                 pprev->link = p = new NODE;
    47.                
    48.                 if (p == NULL)
    49.                     return NULL;
    50.  
    51.                 p->info = x;
    52.                 p->link = NULL ;           
    53.  
    54.                 return p;
    55.             }
    56.         }                              
    57.  
    58.         void print()
    59.         {
    60.             NODE *p = head;
    61.  
    62.             while(p != NULL)   
    63.             {
    64.                 cout<<p->info<<" ";
    65.                 p = p->link;   
    66.             }
    67.         }
    68.  };
    69.  
    70.  void main()
    71.  { 
    72.     int n,i,x;
    73.     linklist L;
    74.    
    75.     cout<<"Can nhap bao nhieu phan tu:  ";  cin>>n;
    76.     cout<<"Nhap cac phan tu: \n";  
    77.     for (i=0; i<n; i++)
    78.     {
    79.         cout<<"Phan tu "<<i+1<<" :  ";
    80.         cin>>x;
    81.         L.getnode(x);      
    82.     }
    83.    
    84.     cout<<"Cac phan tu vua nhap:  ";   
    85.     L.print(); 
    86.    
    87.     getch ();  
    88.  }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    5

    Cảm ơn bạn nhiều, mình đang xem lại

  4. #4
    Ngày gia nhập
    10 2009
    Bài viết
    2

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Bạn sửa lại thế này :

    C Code:
    1. #include <iostream>
    2. #include <conio.h>
    3.  
    4. using namespace std;
    5.  
    6. struct  NODE
    7. {
    8.     int info;
    9.     NODE *link;
    10. };
    11.  
    12.  class linklist
    13.  {
    14.     NODE *head;
    15.    
    16.     public:
    17.         linklist()
    18.         {
    19.             head = NULL;
    20.         }
    21.        
    22.         NODE *getnode(int x)
    23.         {
    24.             if (head == NULL)
    25.             {
    26.                 head = new NODE();
    27.  
    28.                 if (head == NULL)
    29.                     return NULL;
    30.  
    31.                 head->info = x;
    32.                 head->link = NULL;
    33.  
    34.                 return head;
    35.             }
    36.             else
    37.             {
    38.                 NODE *p = head->link, *pprev = head;
    39.  
    40.                 while (p != NULL)
    41.                 {
    42.                     pprev = p;
    43.                     p = p->link;
    44.                 }
    45.            
    46.                 pprev->link = p = new NODE;
    47.                
    48.                 if (p == NULL)
    49.                     return NULL;
    50.  
    51.                 p->info = x;
    52.                 p->link = NULL ;           
    53.  
    54.                 return p;
    55.             }
    56.         }                              
    57.  
    58.         void print()
    59.         {
    60.             NODE *p = head;
    61.  
    62.             while(p != NULL)   
    63.             {
    64.                 cout<<p->info<<" ";
    65.                 p = p->link;   
    66.             }
    67.         }
    68.  };
    69.  
    70.  void main()
    71.  { 
    72.     int n,i,x;
    73.     linklist L;
    74.    
    75.     cout<<"Can nhap bao nhieu phan tu:  ";  cin>>n;
    76.     cout<<"Nhap cac phan tu: \n";  
    77.     for (i=0; i<n; i++)
    78.     {
    79.         cout<<"Phan tu "<<i+1<<" :  ";
    80.         cin>>x;
    81.         L.getnode(x);      
    82.     }
    83.    
    84.     cout<<"Cac phan tu vua nhap:  ";   
    85.     L.print(); 
    86.    
    87.     getch ();  
    88.  }
    bạn ơi.mình chạy thử nhưng không được.trong đó có thông báo lỗi tại while(p!=NULL) là functions containing while are not expanded inline.bạn co thể giải thich và sửa lại cho chương trình trên chạy hoàn chỉnh dược không

  5. #5
    Ngày gia nhập
    01 2009
    Bài viết
    165

    Trích dẫn Nguyên bản được gửi bởi netbusxx Xem bài viết
    Cảm ơn bạn nhiều, mình đang xem lại
    bạn có hiểu là bạn sai ở chỗ nào chưa,nếu bạn chưa hiểu thì mình sẽ giải thích:trong hàm main bạn gọi hàm getnode n lần nhưng ko hề thêm node đó vào danh sách nên cuối cùng danh sách vẫn là rỗng,hơn nữa bạn còn mắc thêm lỗi cấp phát mà ko thu hồi(leak memory).

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

  1. Hướng dẫn Biểu diễn thích hợp bằng danh sách liên kết đơn hoặc danh sách liên kết kép
    Gửi bởi maitrung trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 3
    Bài viết cuối: 04-08-2012, 08:01 PM
  2. Cấu trúc dữ liệu Cách tạo danh sách liên kết mới từ danh sách liên kết đã cho như thế nào?
    Gửi bởi giacmo1612 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 2
    Bài viết cuối: 30-11-2011, 04:43 PM
  3. Nhập và xuất danh sách liên kết lồng danh sách liên kết?
    Gửi bởi nvluong_it trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-04-2011, 11:30 AM
  4. Lập trình C Danh sách liên kết - Xử lý danh sách liên kết trong lập trình C
    Gửi bởi phucduan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 08-11-2010, 10:25 PM
  5. Danh sách liên kết, code nhập danh sách sinh viên có lỗi làm sao sửa?
    Gửi bởi acmilan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 10-04-2009, 08:24 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