#include <stdio.h>
#include <stdlib.h>
struct link *AppendNopde(struct link *head);
void DisplyNode(struct link *head);
void DeleteMemory(struct link *head);
struct link
{
int data ;
struct link *next;
};
int main()
{
int i=0;
char x;
struct link *head = NULL;
printf("Do you want to append a new node ?\n");
scanf("%c",&x);
while(x=='y')
{
head = AppendNopde(head);
DisplyNode(head);
printf("Do you want to append a new node ?\n");
scanf("%c",&x);
++i;
}
printf("%d new nodes had been appended \n",i);
DeleteMemory(head);
return 0;
}
struct link *AppendNopde(struct link *head)
{
struct link *p = NULL,*pr = head;
int data;
p = (struct link *)malloc(sizeof(struct link));
if (p==NULL)
{
printf("No enough memory to \n");
exit(0);
/* code */
}
if (head==NULL)
{
head = p;
/* code */
}
else
{
while(pr->next!=NULL)
pr=pr->next;
pr->next=p;
}
printf("Input node data:\n");
scanf("%d",&data);
p->data = data;
p->next = NULL;
return head;
}
void DisplyNode(struct link*head)
{
struct link *p = head;
int j =1;
while (p!=NULL)
{
printf("%5d%10d\n",j,p->data);
p = p->next;
++j;
}
}
void DeleteMemory(struct link *head)
{
struct link *p = head ,*pr = NULL;
while (p!=NULL)
{
pr = p;
p = p->next;
free(pr);
}
}
书上的代码总觉得有点问题
最新推荐文章于 2022-05-22 20:10:16 发布