程序代码:
#include<stdio.h> #include<malloc.h> #include<stdlib.h> //链表结构体 typedef struct Node{ int data; struct Node * pNext; }NODE ,*PNODE; //c创建与销毁 PNODE create_list(void); void destroy(PNODE H); //主函数 int main() { PNODE P; P=create_list(); destroy(P); return 0; } PNODE create_list(void)//创建链表 { int len;int i; int val; PNODE pHead=(PNODE)malloc(sizeof(NODE));//分配头节点 if(NULL==pHead) {printf("分配失败,程序终止\n");return(NULL); } PNODE pTail=(PNODE)malloc(sizeof(NODE));//分配头节点 if(NULL==pTail) { printf("分配失败,程序终止\n"); return (NULL); } PNODE Tail=pHead; pTail->pNext=NULL; printf("请您输入生成的链表节点个数:"); scanf("%d",&len); for(i=0;i<len;i++)//按序输入节点及内容 { printf("请输入第%d个节点的值:",i+1); scanf("%d",&val); PNODE pNEW=(PNODE)malloc(sizeof(NODE)); if(pNEW==NULL) { printf("分配失败,程序终止"); return(NULL);} pNEW->data =val; pTail->pNext=pNEW; pNEW->pNext=NULL; pTail=pNEW; } return pHead; } //销毁 void destroy(PNODE H) { PNODE p,q; p=H; while(p){ q=p; p=p->pNext; free(q); printf("已销毁"); } }