30/09/2018, 18:32

Code Linked List sai hàm insert_last

Chào mọi người, thật tình mình đã thử rất nhiều cách mà vẫn không được ! Nên mới mạo muội lên đây nhờ mọi người chỉ cho mình sai ở đâu ạ ? và cách giải quyết ?
Chuyện là vậy mọi người ạ, Mình đang xây dựng một danh sách liên kết đơn bằng Class, mình gặp một lỗi ở hàm insert_last là mình insert 3 phần tử vào danh sách nhưng khi print ra thì chỉ có 2 số à.
Ví dụ mình insert lần lượt : 12 32 26 thì nó xuất ra 26 23 rồi kết thúc. Mong mọi người giúp mình chứ. Mình sắp điên với nó rồi… T_T @@!

private:
	Element * head;
	Element * tail;
public:
	Linked_List(){
		head = tail =NULL;
	};
	int isEmpty()
	{
		if (head == NULL)
			return 1;
		else
			return 0;
	}
	void Insert_Last(int x)
	{
		Element *temp = new Element();
		Element * ptr = new Element();
		temp->Set_Data(x);
		
		if (isEmpty() == 1)
		{
			temp->Set_Pointer(NULL);
			head = temp;
		}
		else
		{			
			while (head ->Get_Pointer() != NULL)
			{
				head = head->Get_Pointer();
			}
			head->Set_Pointer(temp);
		}
	}
Bùi Phú Hiệp viết 20:38 ngày 30/09/2018

@quocdang
Trong vòng lặp
while (head ->Get_Pointer() != NULL)
{
head = head->Get_Pointer();
}
head->Set_Pointer(temp);
Bạn để là head nên khi gán nó sẽ thay đổi cả giá trị head ban đầu của bạn luôn
Nên gán head cho 1 con trỏ ptr rồi sử dụng ptr trong vòng lặp

Bài liên quan
0