【 数据结构(C语言)】线性表——链表反转
方法1:使用3个指针遍历单链表,逐个结点进行反转。
方法2:从第2个节点到第N个节点,依次逐节点插入到第head节点之后(针对有。
法一:逐个结点反转
1)将指针a,b,c依次赋值为连续的三个指针
2)原链表的第一个结点翻转后为最后一个结点,将原链表的第一个结点的next 赋值NULL
3)把b->next 赋值为a,改变指针方向; 将b 赋值为 c,a赋值为b,c赋值为c->next ,边界条件:赋值后的a 为空时,L->next = a; 更新新的表头
LinkList ListReverse(LinkList &L)
{LinkList a = L->next;LinkList b = a->next;LinkList c = b->next;a->next = NULL;int len = GetLength(L);while (len--){b->next = a;c = b;b = a;if(!a){L->next=a;}else c=c->next;}return L;
}
法二:依次插入到头结点之后(代码针对有头结点的链表)
如果是没有头结点的链表,从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,(N-1)次这样的操作结束之后将第1个节点挪到新表的表尾即可
LinkList ListReverse2(LinkList &L)
{int num;for (int i=2; i <= GetLength(L); i++){ListDeteleByPos_L(L,i,num);ListInsert_L(L,1,num);}return L;
}
转载于:https://www.cnblogs.com/sxy-798013203/p/7774505.html
【 数据结构(C语言)】线性表——链表反转相关推荐
- 数据结构与算法 | 线性表 —— 链表
原文链接:wangwei.one/posts/java-- 链表 定义 逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构 ...
- 每隔k次反转一次 链表_PTA 5-2 Reversing Linked List (25) [法一] - 线性表 - 链表反转 (PAT 1074)...
Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elem ...
- C语言数据结构-第二章线性表-电大
第二章线性表--内容简介 本章将进入线性结构的学习. 线性结构是最简单.最常用的一种数据结构. 本章将学习线性表的定义.顺序和链式两种存储方式及相应存储结构上的运算实现.通过典型示例训练,掌握线性表的 ...
- c语言 静态链表插入排序,数据结构C语言版 表插入排序
西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...
- Algorithms_基础数据结构(04)_线性表之链表_单向循环链表约瑟夫环问题
文章目录 大纲图 链表的经典面试题目 如何设计一个LRU缓存淘汰算法 约瑟夫问题 结构 分析 大纲图 链表的经典面试题目 如何设计一个LRU缓存淘汰算法 tip:单向链表 约瑟夫问题 N个人围成一圈, ...
- Java版数据结构与算法——线性表
*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...
- 【数据结构】除去线性表中的重复数字
题目:写一个算法将单链表中值重复的结点删除,使所得的结果表中各结点值均不相同. 刚看到这个题目给我第一个思路是冒泡排序,可以利用冒泡排序的两层循环找出相同的结点,然后free掉.第一层循环是控制循环的 ...
- 数据结构复习题(线性表)
数据结构复习题(线性表) 线性表 选择题 填空题 判断题 解答题 顺序表的插入和删除 单链表的插入与删除,创建 线性表 选择题 用单链表方式存储的线性表,存储每个节点需要两个域,一个是数据域,另一个是 ...
- 大话西游之王道考研数据结构第一讲---线性表的顺序表示
大话西游之王道考研数据结构第一讲---线性表的顺序表示 写在前面的话 王道考研数据结构是一本非常好的书,本系列所有的内容是按照其书进行讲述的,所以您可以以那本书作为主要内容,这个做参考. 大学时候,在 ...
- 线性表算法题库_数据结构与算法(线性表)练习题
.word 资料 . 三.写一个算法合并两个已排序的线性表. (用两种方法:数组表示的线性表(顺序表)和 指针表示的线性表(链表) ) 要求: 1 .定义线性表节点的结构,并定义节点的型和位置的型. ...
最新文章
- java 跨年 周计算公式_如何跨年计算 两日期之间相隔的周数 with java8 time API
- 推荐系统超级公开课报名!
- JMC | 人工智能在药物发现中的应用:走进广阔的天地
- 终端html页面,HTML5的终端适配
- jQuery设置和获取HTML、文本和值
- LeetCode-字符串-反转字符串中的单词 II
- 使用SharePoint Online PowerShell cmdlet有哪些好处?
- oracle怎么判断是裸设备安装,Oracle 9i下以裸设备方式安装数据库
- Hadoop Map/Reduce的工作流
- 狂人日记学习 之一 CSS布局的目的
- 微軟將在廉價筆記本電腦上測試Windows
- 【路径规划】基于matlab蚁群和粒子群算法双机器人协调路径规划【含Matlab源码 045期】
- centos6.5安装mysql-udf-http日记
- IOS11降级到IOS10的操作方法(刷机有风险,操作需谨慎)
- RK3399平台开发系列讲解(高速设备驱动篇)6.46、蓝牙驱动
- EasyExcel注解方式校验数据行
- wps和office有什么区别?
- 蒙特卡洛树搜索(MTCS)
- 杜伽K320W键盘使用手册
- can差分线阻抗_为什么要进行阻抗匹配?
热门文章
- python 网易_python发送网易邮件
- android编写蓝牙工具类,【Android BLE】蓝牙开发「防丢器」的相关知识点(三):手机与设备之间指令传输...
- C#中 构造函数的执行
- 无法鼠标拖动选择_在 iPad 上用鼠标体验怎么样?我用这 12 款 App 试了一下
- 【渝粤教育】广东开放大学 java程序设计基础 形成性考核 (39)
- 23种设计模式(十五)接口隔离之适配器
- 【ICLR2020】通过强化学习和稀疏奖励进行模仿学习
- 强化学习中值迭代收敛性推理证明
- 王云燕-永远好奇,一生求知
- Python logging日志系统