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);
}
}
@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