30/09/2018, 16:01

Danh sách liên kết C++

ai chỉ em về cái DSLK C++.
cụ thể là tạo n DSLK (n>1) và n con trỏ trỏ và các DSLK đó.
thì em k biết hiện thực tạo và trỏ con trỏ như thế nào?
em thường viết DSLK theo kiểu.

struct Node {
int data;
Node *next; 
};
class list {
public:
Node *pHead;
int counter;
list() { pHead = NULL; counter = 0;}
//...các hàm của 1 số thao tác xóa thêm... 

với nhiều DSLK thì em k biết viết ntn? em có GG sơ qua mà chưa thông. các bác chỉ em với.
thank all ạ.

Phạm Hoàng Tuấn viết 18:08 ngày 30/09/2018

Bạn cứ ngĩ rằng 1 danh sách liên kết đơn bào gồm nhiều node “nối” với nhau (bằng cách 1 node giữ địa chỉ của node đằng sau nó). Vậy, áp dụng n danh danh sách liên kết đơn thì bao gồm n danh sách liên kết “nối” với nhau bằng cách 1 danh sách liên kết sẽ giữ địa chỉ của danh sách liên kết đứng sau nó (tức là địa chỉ của thằng đứng đầu danh sách liên kết đứng sau nó). Bạn thử tham khảo cấu trúc kiểu này xem.


    struct node
    {
    	int data;
    	NODE * pNext;
    }
    ;
    typedef struct node NODE;
    
    class DSLK
    {
    public:
    	NODE * pHead;
    	int counter;
    	NODE * lNext; //=pHead của danh sách liên kết đứng sau nó
    
    	DSLK()
    	{
    		pHead = NULL;
                lNext=NULL;
    		counter = 0;
    	}
    
    	//Cac ham xu ly
    	void Nhap();
    	void Xuat();
    }
    ;
    
    class List_of_DSLK
    {
    public:
    	NODE * lHead; //=pHead của danh sách liên kết đầu tiên. Giữ địa chỉ của thăng danh scsh lien kết đầu
    	int list_counter;
    	List_of_DSLK()
    	{
    		lHead = NULL;
    		list_counter = 0;
    	}
    
    	//Cac ham xu ly
    	void Nhap();
    	void Xuat();
    }
    ;

Bài liên quan
0