# include<stdio.h> # include<malloc.h> # include<stdlib.h> typedef struct Node { int data; struct Node *pNext; }NODE,*PNODE; PNODE create_list(void); void traverse_list(PNODE pHead); int main(void) { PNODE pHead=NULL; pHead=create_list(); traverse_list(pHead); return 0; } PNODE create_list(void) { int len;//用来存放有效节点的个数 int i; int val;//用来临时存放用户输入的节点的值 PNODE pHead=(PNODE)malloc(sizeof(NODE));//分配一个不存放有效数据的头节点 if(NULL==pHead) { printf("分配失败,程序终止 "); exit(-1); } PNODE pTail=pHead; pTail->pNext=NULL; printf("请输入您需要生成的链表节点的个数:len="); scanf("%d",&len); for(i=0;i<len;i++) { printf("请输入第%d个节点的值:",i+1); scanf("%d",&val); PNODE pNew=(PNODE)malloc(sizeof(NODE)); if(NULL==pNew) { printf("分配失败,程序终止 "); exit(-1); } pNew->data=val; pTail->pNext=pNew; pNew->pNext=NULL; pTail=pNew; } return pHead; } void traverse_list(PNODE pHead) { PNODE p=pHead->pNext; while(p !=NULL) { printf("%d ",p->data); p=p->pNext; } printf(" "); return; }