/*目的:设计一个将输入的数据建立成链表*/ /*系统平台:Ubuntu VI编辑器 GCC编译*/ #include<stdio.h> #include<stdlib.h> #define Max 10 struct List { int Number; char Name[Max]; struct List *Next; }; typedef struct List Node; typedef Node *Link; void Free_List(Link Head) { Link Pointer; while(Head!=NULL) { Pointer=Head; Head=Head->Next; free(Pointer); } } void Print_List(Link Head) { Link pt; pt=Head; while(pt!=NULL) { printf("You input the data is:/n"); printf("Number is:%d/n",pt->Number); printf("Name is:%s/n",pt->Name); pt=pt->Next; } } Link Creat_List(Link Head) { int Num; char InName[Max]; Link New; Link pt; int i; Head=(Link)malloc(sizeof(Node)); if(Head==NULL) printf("Memory mallocate Failure!!/n"); else { Num=1; printf("Please input the data name:"); scanf("%s",InName); Head->Number=Num; for(i=0;i<Max;i++) { Head->Name[i]=InName[i]; } Head->Next=NULL; pt=Head; while(1) { Num++; New=(Link)malloc(sizeof(Node)); printf("Please input the data name:"); scanf("%s",InName); if(InName[0]=='0') break; New->Number=Num; for(i=0;i<Max;i++) { New->Name[i]=InName[i]; } New->Next=NULL; pt->Next=New; pt=New; } } return Head; } int main() { Link H; H=Creat_List(H); if(H!=NULL) { Print_List(H); Free_List(H); } return 0; }