# 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("分配失敗,程序終止\n"); 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("分配失敗,程序終止\n"); 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("\n"); return; }