书上的代码总觉得有点问题

来源:互联网 发布:百度糯米用不了网络 编辑:程序博客网 时间:2024/06/01 23:22
#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);    }}
1 0
原创粉丝点击