数组如何模拟链表
来源:互联网 发布:手机隔墙听软件 编辑:程序博客网 时间:2024/06/05 10:30
模拟链表:
和链表相似,只不过将链表的next域用一个数组表示。数组data用来存放具体数字,而另一个数组right用来存放当前序列中每一个元素右边的元素在数组data中的位置。
例如:
data数组:(从1开始存储,0位置空着)
序号 : 1 2 3 4 5 6
值 : 4 6 3 7 9 0
right数组:
序号 : 1 2 3 4 5 6
值 : 5 3 0 6 4 2
说明:
从right数组中可以看出:
1号元素右边元素在5号位置,即:2号 = data[5] = 9
而5号位置右边的元素在4号位置,即:3号 = data[right[5]] = data[4] = 7
。。。。。。
需要注意的是,3位置右边元素在0位置上,意味着结束
到最后我们就可以找到整个链表连起来的元素了:
4 9 7 0 6 3
那如果想在7后面插入元素10呢
新链表:4 9 7 10 0 6 3
那么可以这样做:
data数组:(从1开始存储,0位置空着)
序号 : 1 2 3 4 5 6 7
值 : 4 6 3 7 9 0 10
right数组:
序号 : 1 2 3 4 5 6 7
值 : 5 3 0 7 4 2 6
再添加一个元素为data[4](之前的值)
数组模拟的链表也可以实现排序,下面给出了排序的代码实现:
运行结果:
- 顶
- 0
- 踩
阅读全文
0 0
- 数组如何模拟链表
- 数组模拟链表
- 数组模拟链表
- 用数组模拟链表
- 使用数组模拟链表
- 用数组模拟链表
- 【数组模拟链表】UVA
- 用数组模拟链表
- 用数组模拟双向链表
- UVa 11988 数组模拟链表
- php模拟链表操作数组
- uva11988数组模拟单向链表
- C/C++:使用数组模拟链表
- 【数组模拟链表(双向)】UVA
- UVa-11988(数组模拟链表)
- 数组模拟链表之学生排队
- 数组模拟邻接表
- 用数组模拟邻接表
- Pip 国内源的使用
- Java并发编程之原子变量
- 命令模式
- Akka(29): Http:Server-Side-Api,Low-Level-Api
- JavaWeb之Jetty和Tomcat内嵌服务器实现
- 数组如何模拟链表
- 给定一个数组nums,写一个函数将所有的值移动0到最后,同时保持非零元素的相对顺序不变
- Java设计模式
- (转载)浅谈Java中的hashcode方法
- UML类图关系(泛化、继承、实现、聚合、组合、依赖)
- Struts2初体验
- JavaScript开心消消乐中的迭代算法
- 排序算法(一)直接插入排序
- 数据库MYSQL入门教程(3)——数据类型