Code danh sách liên kết đơn không thể xuất dữ liệu ra được

Code danh sách liên kết đơn của em bị bug ẩn, em không thể nào xuất dữ liệu ra được, mong mọi người giúp em với ạ :((

#include <iostream>

using namespace std;

struct Node
{
    int x;
    int i;
    Node *pNext;
};
struct SingleList
{
    Node *pHead;
    Node *pTail;
};
void Initialize(SingleList *&List)
{
    List = new SingleList;
    List->pHead = List->pTail = NULL;
}
Node *CreateNode(SingleList *&List, int x, int i)
{
    Node *pNode = new Node;
    pNode->i = i;
    pNode->x = x;
    pNode->pNext = NULL;
    return pNode;
}
void InsertLast(SingleList *&List, int x, int i)
{
    Node *pNode = CreateNode(List, x, i);
    if (List->pHead == NULL) List->pHead = List->pTail = NULL;
    else
    {
        List->pTail->pNext = pNode;
        List->pTail = pNode;
    }
}
void PrintList(SingleList   *List)
{
    Node *pTmp = List->pHead;
    while (pTmp != NULL)
    {
        cout << pTmp->x << "^" << pTmp->i << " + ";
        pTmp = pTmp->pNext;
    }
}
int main()
{
    SingleList *List;
    Initialize(List);

    int n, x;
    cout << "nhap n: "; cin >> n;
    cout << "nhap x: "; cin >> x;
    for (int i = 1; i <= n; i++)
        InsertLast(List,x,i);
    cout << "List: ";
    PrintList(List);
    return 0;
}

sai ở đây nè, ko bao h insert dc luôn
sửa thành

if (List->pHead == NULL) List->pHead = List->pTail = pNode;

mà code gớm quá đi -…-
mấy cái function kia gom vào struct nhìn sẽ đỡ đau não hơn

3 Likes

con trỏ này trỏ tới đâu đây? Tại sao lại sử dụng con trỏ cho List ở đây???

còn mấy cái hàm kia nữa, truyền SingleList *& là thế nào đây :V :V :V :V Thấy giống code sách nào đó dạy hồi mới học, giờ đọc lại thấy rất dỏm :V

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?