Ai giúp em chỉ chỗ sai bài này với ạ. Nó bị lỗi run-time và em k thể phát hiện ra chỗ nào bất hợp lí cả.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct node
{
char DATA[30];
struct node *n;
};
struct node* Freenode (struct node* p)
{
free(p);
}
int Emptynode(struct node* plist)
{
if(plist==NULL) return 1;
return 0;
}
struct node* AddHead(struct node *plist, char x[30])
{
struct node *p;
p=(struct node*)malloc(sizeof(struct node));
strcpy(p->DATA,x);
if(plist==NULL)
{
plist=p;
p->n=NULL;
return p;
}
else
{
p->n=plist;
plist=p;
return p;
}
}
struct node *AddTail(struct node* plist, char x[30])
{
struct node *p, *q;
if(plist==NULL)
{
AddHead(plist,x);
return (plist);
}
else
{
p=plist;
q=(struct node*)malloc(sizeof(struct node));
strcpy(q->DATA, x);
while(p->n!=NULL) p=p->n;
p->n=q;
q->n=NULL;
return q;
}
}
void xuat(struct node* plist)
{
if (plist)
{
printf("\nDanh sach cac phan tu cua: \n");
struct node *p;
p=plist;
do
{
printf("%s",p->DATA);
p=p->n;
}
while(p->n!=NULL);
printf("\n\n\n");
}
else printf("\nDanh sach rong");
}
int main()
{
struct node *plist;
plist=(struct node*)malloc(sizeof(struct node));
AddHead(plist,"anh");
xuat(plist);
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?