【算法学习笔记】07.数据结构基础 链表 初步练习
写这篇文章时离学完列表已经很久了 最近真的是很懒。
数据结构这部分在刘汝佳的白书上的部分太少了,我一点要找个时间好好的看一下程杰的大话。
链表的优点是它强调的是相关元素之间的相对顺序,左和右。其实可以是个环状结构。
用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.数据结构基础 链表 初步练习相关推荐
- 密码算法学习笔记01:基础知识-公钥密码和混合密码系统
来自书籍<图解密码技术 第三版.pdf> 密码算法基础知识-公钥密码和混合密码系统 一.公钥密码 公钥密码--用公钥加密,用私钥解密. 公钥密码无需向接收者配送用于解密的钥匙,只需向发送者 ...
- 学习笔记(07):JavaWeb基础核心技术-11. 佟刚_JavaWEB_GenericServlet
立即学习:https://edu.csdn.net/course/play/1060/15792?utm_source=blogtoedu 1.genericservlet是一个servlet接口和s ...
- 数据结构与算法学习笔记之 提高读取性能的链表(上)
数据结构与算法学习笔记之 提高读取性能的链表(上) 前言 链表(Linked list)比数组稍微复杂一点,在我们生活中用到最常见的应该是缓存,它是一种提高数据读取性能的技术,常见的如cpu缓存,浏览 ...
- 数据结构与算法学习笔记之 从0编号的数组
数据结构与算法学习笔记之 从0编号的数组 前言 数组看似简单,但掌握精髓的却没有多少:他既是编程语言中的数据类型,又是最基础的数据结构: 一个小问题: 为什么数据要从0开始编号,而不是 从1开始呢? ...
- 数据结构与算法学习笔记之先进先出的队列
前言 队列是一种非常实用的数据结构,类似于生活中发排队,可应用于生活,开发中各个方面,比如共享打印机(先请求先打印),消息队列.你想知道他们是怎么工作的么.那就来一起学习一下队列吧 正文 一.队列的定 ...
- 【基础】基础算法学习笔记(状态空间)
基础算法学习笔记(状态空间) 一.状态空间 1.定义(什么是状态空间):一个实际问题的各种可能情况构成的集合.(解释:为什么需要算法来和程序来处理问题?如果一道题可以手算得到答案,换句话说就是存在通过 ...
- 数据结构与算法学习笔记——链栈
数据结构与算法学习笔记(C语言) 链栈 在开始链栈的学习之前,我们先实现一下上一篇文章中提到的检查括号匹配的小程序,鉴于水平有限,本人就随便写一下代码好了,目标仅限于对功能的实现. /*用顺序栈这种数 ...
- 数据结构与算法学习笔记4:递归+分治法
数据结构与算法学习笔记4 递归 斐波那契数列 青蛙跳台阶问题 链表倒序打印 分治法 二分查找/折半查找 Binary Search 题目1:快速幂 题目2:如何判断一个数是否为2的次幂 递归 指在函数 ...
- 数据结构与算法学习笔记——图 C++实现
数据结构与算法学习笔记--图 C++实现 1 概念 2 图的表示方法 3 算法 3.1 拓扑排序 3.2 图的搜索算法 3.2.1 广度优先搜索(BFS) 3.2.2 深度优先搜索(DFS) 3.3 ...
最新文章
- 2022-2028年中国遇水膨胀橡胶行业市场研究及前瞻分析报告
- npoi xlsx 文件损坏_解决右键新建xlsx文件错误
- Android动态加载插件APK
- Spring Data REST的实际应用
- esmini接入外部ego车控制
- spring集成 log4j + slf4j
- Linux下查看系统版本号信息的方法
- 泛型数组 List c# 1613647847
- html渲染json的插件,[ json editor] 如何在网页中使用Json editor 插件
- shell使用sshpass自动验证root密码
- 计算机网络协议到底分几层,一次讲清楚
- VBA操作WORD(二):替换字符(含空格、全角字符、换行符等)
- 小米10 红米K30Pro 小米10Pro 无限重启卡米 9008救砖后无限重启 线刷无效
- 步进电机加速的c语言编程,步进电机加速-匀速-减速运行程序(C - 电子制作 - 电子发烧友网...
- 电路中VCC等符号的含义零欧姆电阻作用
- 改进euler方法 c语言,科学网—计算方法:Euler法及其改进 - 张江敏的博文
- 设计模式基础(二):目标与原则
- php实战 AES对称加密 第三章
- oracle10503事件,使用10203事件来跟踪oracle块清除
- 学生管理系统小项目用C语言实现(部分功能可能不是很完善)
热门文章
- 调试记录- error: #error “must enable c++17“
- 一步一步部署SSIS包图解教程1
- 编程学习笔记(第一篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(1)...
- POJ - 1456 贪心 堆常用操作 注意细节
- C# 获取随机可用端口号
- 设计模式 之 --- GRASP
- Asp.net動態添加控件(转)
- java 自定义一个容器类
- 弱类型、强类型、动态类型、静态类型语言的区别
- mysql5.7.23版本环境配置