01/10/2018, 11:40

Thắc mắc về danh sách liên kết đơn?

Chào các anh/chị, anh/chị cho em hỏi là em muốn thêm 1 phần tử(Node) vào cuối danh sách và 1 phần tử vào đầu danh sách liên kết thì newNode->link=l.First thì link ở đây là link của newNode hay link của l.First vậy ạ? Tương tự với thêm phần tử newNode vào cuối danh sách l.Last->link=newNode; thì link ở đây là link của l.Last hay link của newNode

Em cám ơn!

#include <stdio.h>

// Hàm khai báo dữ liệu 1 phần tử trong DSLK
struct Node
{
	int data;
	Node *link; 
};
//Hàm khai báo một DSLK có phần tử đầu là First và phần tử cuối là Last
typedef struct List
{
	Node *First,*Last;
};
//----------------------------
// Hàm khởi tạo giá trị cho phần tử đầu và cuối của danh sách
void Init(List &l)
{
	l.First=l.Last=NULL;
}
//----------------------------
// Hàm tạo 1 Node trong DSLK
Node *getNode(int x)
{
	//Node *p;
	//p=new Node;
	Node *p=new Node;
	if(p==NULL)
		return NULL;
	p->data=x;
	p->link=NULL;
	return p;
}
//----------------------------
// Hàm thêm 1 phần tử vào đầu danh sách
void addFirst(List &l,Node *newNode)
{
	if(l.First==NULL) //ds rong
		l.First=l.Last=newNode;
	else //ds khong rong
	{
		newNode->link=l.First;
		l.First=newNode;
	}
}
//Hàm thên 1 phần tử cào cuối danh sách
void addLast(List &l,Node *newNode)
{
	if(l.First==NULL) //ds rong
		l.First=l.Last=newNode;
	else //ds khong rong
	{
		l.Last->link=newNode;
		l.Last=newNode;
	}
}
IT viết 13:44 ngày 01/10/2018

newNode->link=l.First thì link ở đây là link của newNode hay link của l.First vậy ạ?
Trả lời: là link của newNode

l.Last->link=newNode; thì link ở đây là link của l.Last hay link của newNode?
Trả lời: là link của l.Last

nghia viết 13:55 ngày 01/10/2018

Chào pcnhatvu!
Theo code của bạn thì List là các phần tử chứa con trỏ và các con trỏ trỏ tới phần tử đầu và cuối của danh sách.
Bạn phải phân biệt được phần tử đầu danh sách(Node*) và phần tử trỏ tới phần tử đầu danh sách( List.First) và tương tự với thằng cuối danh sách. Rồi dùng giấy vẽ ra thì bạn sẽ hiểu!

Chúc bạn thành công!

Bài liên quan
0