//链表操作#include<stdio.h>#include<malloc.h>#include<stdlib.h>//定义一个结构体包含数据域和指针域,指针域存放下一个节点的地址typedefstructNode{intdata;structNode*pNextNode;}NODE,*PNODE;//创建一个链表,返回第一个节点的地址PNODEcreateNodeLink(void);//遍历链表,参数为第一个节点的地址voidtraverseLinked(PNODEpHead);intmain(void){//创建链表PNODEpHead=createNodeLink();//遍历链表traverseLinked(pHead);getchar();return0;}//创建链表,,下一个创建的节点的pNextNode指向上一个创建的节点,即从后往前创建PNODEcreateNodeLink(void){//中间变量,用于保存上一个节点PNODEpNodeTail=(PNODE)malloc(sizeof(NODE));if(pNodeTail==NULL){printf("分配失败,程序终止!\n");exit(-1);}intlen=7,i,val;i=0;printf("请输入您要生成的链表的节点的个数:");scanf("%d",&len);for(i=0;i<len;i++){printf("请输入%d个节点的值:\n",i+1);scanf("%d",&val);PNODEpNew=(PNODE)malloc(sizeof(NODE));if(pNew==NULL){printf("分配失败,程序终止!\n");exit(-1);}pNew->data=val;if(i==0){pNew->pNextNode=NULL;}else{pNew->pNextNode=pNodeTail;}pNodeTail=pNew;}//循环完成,pNodeTail刚好指向第一个节点returnpNodeTail;}//遍历链表voidtraverseLinked(PNODEpHead){PNODEpTemp=pHead;while(pTemp!=NULL){printf("%d\t",pTemp->data);pTemp=pTemp->pNextNode;}}