C语言构建一个链表以及操作链表
作者:互联网
#include <stdio.h> #include <malloc.h> #include <stdlib.h> struct Node{ int data; struct Node * pNext; }; struct Node * createList(void){ int len; //存放有效节点的个数 int i; int val; //用来临时存放用户输入的节点的值 struct Node * pHead = (struct Node *)malloc(sizeof(struct Node)); if (NULL == pHead) { printf("分配失败程序终止!\n"); exit(-1); } struct Node * pTail = pHead; pTail->pNext=NULL; printf("请输入要生成链表的节点个数: len="); scanf_s("%d", &len); for (int i = 0; i < len; ++i){ printf("请输入第%d个节点的值:", i + i); scanf_s("%d",&val); struct Node * pNew = (struct Node *)malloc(sizeof(struct Node)); if (NULL == pNew) { printf("分配失败程序终止!\n"); exit(-1); } pNew->data = val; pTail->pNext = pNew; pNew->pNext = NULL; pTail = pNew; } return pHead; }; bool empty_list(struct Node * pHead) { if (pHead->pNext == NULL) { return true; }else{ return false; } } void TraverseList(struct Node * pHead ) { if (empty_list(pHead)) { //判断链表是否为空 printf("链表为空"); }else { //链表操作 } //优化链表操作 struct Node * p = pHead->pNext; while (NULL!=p){ printf("%d\n", p->data); p = p->pNext; } return; } int main(void) { struct Node * pHead=NULL; //头指针(存放链表头结点地址) pHead = createList(); //构建一个链表 TraverseList(pHead); //操作链表 }
标签:Node,struct,int,C语言,链表,pHead,构建,pNext 来源: https://blog.51cto.com/u_15115111/2754167