C语言:从表尾到到表头逆向创建链表,反转链表
来源:互联网 发布:淘宝店铺开店流程 编辑:程序博客网 时间:2024/06/06 05:52
/*从表尾到到表头逆向创建链表,反转链表逆向创建链表:新节点插入到头结点反转链表:需要三个指针*/# include <stdio.h> # include <malloc.h> //节点类型 typedef struct node { int data; struct node * pNext; }NODE, * PNODE; PNODE converse_creat_list(); void traverse(PNODE pHead);PNODE converse(PNODE pHead);int main(void) { PNODE pHead = converse_creat_list(); //创建链表 printf("建立链表:"); traverse(pHead); //反转链表printf("反转链表:");PNODE pCon = converse(pHead);traverse(pCon); return 0;}//创建链表 PNODE converse_creat_list() { int i; int len, val; printf("输入创建链表的长度:"); scanf("%d", &len); PNODE pHead = (PNODE)malloc(sizeof(NODE)); //创建头结点 pHead->pNext = NULL; PNODE pNew; for(i = 0; i < len; i++) { printf("输入插入的第%d个元素 val:", len - i); scanf("%d", &val); pNew = (PNODE)malloc(sizeof(NODE)); //新节点 pNew->data = val; pNew->pNext = pHead->pNext; //新节点插在头结点 pHead->pNext = pNew; } return pHead; } //反转链表PNODE converse(PNODE pHead){PNODE p = pHead->pNext;PNODE pCon = (PNODE)malloc(sizeof(NODE)); //新链表的头结点pCon->pNext = NULL;PNODE pMid = NULL;PNODE pTail;while(p){pTail = pMid;pMid = p;p = p->pNext;pMid->pNext = pTail;}pCon->pNext = pMid;return pCon;}//遍历链表 void traverse(PNODE pHead) { PNODE p = pHead->pNext; //指向首节点 while(p) { printf("%d ", p->data); p = p->pNext; } printf("\n"); }
0 0
- C语言:从表尾到到表头逆向创建链表,反转链表
- C语言创建单向链表之逆向建链
- 一个链表创建、反转、打印的C语言代码
- 反转链表-C语言实现
- c语言--通过栈反转链表
- 链表创建、反转
- C语言各种链表操作(创建、打印、删除、插入、反转)
- 带表头的单向链表实现(C语言)
- 链表头文件C语言
- c链表反转
- 【C++】反转链表
- 创建动态链表的三种算法(C语言实现)——正向、逆向、递归
- 【C/C++】反转链表
- 链表创建及反转
- (C语言)链表的反转(一次遍历)
- C语言 链表反向打印与反转
- C语言实现双向链表的反转
- C语言实现单向链表的反转
- STL库的容器简要总结
- POJ 1837:Balance 天平DP。。。
- SQLite数据库是一款非常小巧的嵌入式开源数据库软件
- 2015080404 - 公司的规章制度
- 学会使用AngularJS
- C语言:从表尾到到表头逆向创建链表,反转链表
- [opencv] 霍夫变换Hough
- Linux学习笔记(6)-进程管理
- IOS开发中(null)与<null>的处理
- python开发--pickle
- Linux文件共享samba
- GIS平台发展方向
- 拓扑排序
- Python开发--linecache