30/09/2018, 21:54
Ai giúp e fix lỗi bài danh sách liên kết (ngôn ngữ C) này vs, e cảm ơn:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
struct Node
{
int Data;
struct Node *pNext;
};
typedef struct Node NODE;
struct List
{
NODE *pHead;
NODE *pTail;
};
typedef struct List LIST;
void Init (LIST *l)
{
(*l).pHead = (*l).pTail = NULL;
}
NODE* GetNode (int x)
{
NODE *p = (NODE *)malloc(sizeof(NODE));
p ->Data = x;
p ->pNext = NULL;
}
void AddTail (LIST *l, NODE *p)
{
if ((*l).pHead == NULL)
(*l).pHead = (*l).pTail = p;
(*l).pTail ->pNext = p;
(*l).pTail = p;
}
void InPut (LIST *l)
{
int n;
printf ("Nhap vao so luong data: ");
scanf ("%d", &n);
Init(&l);
int i, x;
for (i = 0 ; i < n ; i++)
{
printf ("Nhap vao du lieu data: ");
scanf ("%d", &x);
NODE *p = GetNode(x);
AddTail(&l, p);
}
}
void OutPut (LIST l)
{
NODE *p;
for (p = l.pHead ; p != NULL ; p = p ->pNext)
printf ("%5d", p ->Data);
}
int main()
{
LIST l;
InPut (&l);
OutPut (l);
getch();
return 0;
}
Bài liên quan
Bọc code vao 2 dấu
nhé bạn
This post was flagged by the community and is temporarily hidden.
kh được a ơi…nó vẫn báo lỗi
Lỗi gì vậy bạn, bạn có thể kể chi tiết hơn được không?
nó không có báo lỗi…khi e nhập dữ liệu data xong thì nó hiện ra bảng như dưới…e thử debug thì chạy tới dòng printf ("%5d", p ->Data); thì nó hiện lên cái bảng rồi kh debug được nữa
nó có báo lỗi như hình dưới :
This post was flagged by the community and is temporarily hidden.
full code đây bạn
chỗ
bạn đã truyền vào con trỏ *lít rồi thì khi khởi tạo bạn chỉ cần gọi
thôi
nếu bạn gọi như trên thì nó sẽ truyền dịa chỉ của con trỏ tới list vào hàm Intit() đó
chỗ
trong hàm Input() chỉ cần truyền biến l vào hàm AddTail() thôi
những chỗ như
bạn có thể viết thành
Ok hiểu rồi…e cảm ơn