写这篇文章时离学完列表已经很久了 最近真的是很懒。

数据结构这部分在刘汝佳的白书上的部分太少了,我一点要找个时间好好的看一下程杰的大话。

链表的优点是它强调的是相关元素之间的相对顺序,左和右。其实可以是个环状结构。

用left 和 right两个数组分别记录某个元素相应左右的值,再用link函数进行元素之间的重新排序,抽取和添加。

下面以一个小球移动的题为例子来练习链表。

#include <stdio.h>int left[10]={0,1,2,3,4},right[10]={2,3,4,5,0};
//为了方便,将下标为1的认为是1号小球的属性
void link(int X,int Y)//link函数是进行连接的
{right[X]=Y;left[Y]=X;
}
int main()
{char type = 'L';int x=2,y=4;//将2移到4的左或者右link(left[2],right[2]);//把2从序列中取出 稍后在插入 取出的过程其实就是连接1,3 使 1.r=3 3.l=1 if(type=='L'){//把2插入到3和4中间link(left[y],x);//3.r=2;2.l=3  link(x,y);//2.r=4 4.l=2}else{//把2插入到4和5之间 int t = right[y];//如果不用t来做临时存储变量 则要十分慎重下面两行代码的顺序 因为会相互影响 上面的就是例子link(y,x); link(x,t);//此时t仍然是最初的right[y] }  //链表的操作里,如果使用link函数 并附加参数时一定要考虑动态效应,否则会导致bug //排除此困扰可以用临时变量的方法来解决
}

以上就是链表的初步应用

转载于:https://www.cnblogs.com/yuchenlin/p/4379267.html

【算法学习笔记】07.数据结构基础 链表 初步练习相关推荐

  1. 密码算法学习笔记01:基础知识-公钥密码和混合密码系统

    来自书籍<图解密码技术 第三版.pdf> 密码算法基础知识-公钥密码和混合密码系统 一.公钥密码 公钥密码--用公钥加密,用私钥解密. 公钥密码无需向接收者配送用于解密的钥匙,只需向发送者 ...

  2. 学习笔记(07):JavaWeb基础核心技术-11. 佟刚_JavaWEB_GenericServlet

    立即学习:https://edu.csdn.net/course/play/1060/15792?utm_source=blogtoedu 1.genericservlet是一个servlet接口和s ...

  3. 数据结构与算法学习笔记之 提高读取性能的链表(上)

    数据结构与算法学习笔记之 提高读取性能的链表(上) 前言 链表(Linked list)比数组稍微复杂一点,在我们生活中用到最常见的应该是缓存,它是一种提高数据读取性能的技术,常见的如cpu缓存,浏览 ...

  4. 数据结构与算法学习笔记之 从0编号的数组

    数据结构与算法学习笔记之 从0编号的数组 前言 数组看似简单,但掌握精髓的却没有多少:他既是编程语言中的数据类型,又是最基础的数据结构: 一个小问题: 为什么数据要从0开始编号,而不是 从1开始呢? ...

  5. 数据结构与算法学习笔记之先进先出的队列

    前言 队列是一种非常实用的数据结构,类似于生活中发排队,可应用于生活,开发中各个方面,比如共享打印机(先请求先打印),消息队列.你想知道他们是怎么工作的么.那就来一起学习一下队列吧 正文 一.队列的定 ...

  6. 【基础】基础算法学习笔记(状态空间)

    基础算法学习笔记(状态空间) 一.状态空间 1.定义(什么是状态空间):一个实际问题的各种可能情况构成的集合.(解释:为什么需要算法来和程序来处理问题?如果一道题可以手算得到答案,换句话说就是存在通过 ...

  7. 数据结构与算法学习笔记——链栈

    数据结构与算法学习笔记(C语言) 链栈 在开始链栈的学习之前,我们先实现一下上一篇文章中提到的检查括号匹配的小程序,鉴于水平有限,本人就随便写一下代码好了,目标仅限于对功能的实现. /*用顺序栈这种数 ...

  8. 数据结构与算法学习笔记4:递归+分治法

    数据结构与算法学习笔记4 递归 斐波那契数列 青蛙跳台阶问题 链表倒序打印 分治法 二分查找/折半查找 Binary Search 题目1:快速幂 题目2:如何判断一个数是否为2的次幂 递归 指在函数 ...

  9. 数据结构与算法学习笔记——图 C++实现

    数据结构与算法学习笔记--图 C++实现 1 概念 2 图的表示方法 3 算法 3.1 拓扑排序 3.2 图的搜索算法 3.2.1 广度优先搜索(BFS) 3.2.2 深度优先搜索(DFS) 3.3 ...

最新文章

  1. 2022-2028年中国遇水膨胀橡胶行业市场研究及前瞻分析报告
  2. npoi xlsx 文件损坏_解决右键新建xlsx文件错误
  3. Android动态加载插件APK
  4. Spring Data REST的实际应用
  5. esmini接入外部ego车控制
  6. spring集成 log4j + slf4j
  7. Linux下查看系统版本号信息的方法
  8. 泛型数组 List c# 1613647847
  9. html渲染json的插件,[ json editor] 如何在网页中使用Json editor 插件
  10. shell使用sshpass自动验证root密码
  11. 计算机网络协议到底分几层,一次讲清楚
  12. VBA操作WORD(二):替换字符(含空格、全角字符、换行符等)
  13. 小米10 红米K30Pro 小米10Pro 无限重启卡米 9008救砖后无限重启 线刷无效
  14. 步进电机加速的c语言编程,步进电机加速-匀速-减速运行程序(C - 电子制作 - 电子发烧友网...
  15. 电路中VCC等符号的含义零欧姆电阻作用
  16. 改进euler方法 c语言,科学网—计算方法:Euler法及其改进 - 张江敏的博文
  17. 设计模式基础(二):目标与原则
  18. php实战 AES对称加密 第三章
  19. oracle10503事件,使用10203事件来跟踪oracle块清除
  20. 学生管理系统小项目用C语言实现(部分功能可能不是很完善)

热门文章

  1. 调试记录- error: #error “must enable c++17“
  2. 一步一步部署SSIS包图解教程1
  3. 编程学习笔记(第一篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(1)...
  4. POJ - 1456 贪心 堆常用操作 注意细节
  5. C# 获取随机可用端口号
  6. 设计模式 之 --- GRASP
  7. Asp.net動態添加控件(转)
  8. java 自定义一个容器类
  9. 弱类型、强类型、动态类型、静态类型语言的区别
  10. mysql5.7.23版本环境配置