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

原创 2014年08月11日 17:33:18

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

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

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

用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 
	//排除此困扰可以用临时变量的方法来解决 
}


以上就是链表的初步应用

算法学习基础篇(四):数据结构(堆、二叉搜索树、并查集)

参考书籍《挑战程序设计》,本文实质为该书的学习笔记,结合了笔者自己的理解,欢迎指错~数据结构指的是存储数据的方式。用不同的方式存储数据,可以对数据做不同的高效操作 数据结构是计算机存储、组织数据的...

【算法学习笔记】02.wikioi1205 单词翻转

先分析一下自己的垃圾代码(通不过3.in)

python数据结构学习笔记-2016-11-07-01-双链表

9.1 双链表         双链表(doubly link list):与之前的单链表不同的是,每一个结点有两个指针,一个指向下一个结点,另外一个指向上一个结点。         双链表中有两...

python数据结构学习笔记-2016-11-07-03-多重链表以及相应的迭代器

9.3 多重链表         多重链表(multi-linked list):每一个结点都含有多个指针,之前的双链表就是多重链表。         9.3.1 多条链         下图就...

【算法学习笔记】09.数据结构基础 二叉树初步练习2

二叉树概念的理解,二叉树的结构体构造(指针的大量练习),数组方式构造(简易),BFS(宽度优先遍历)...

【算法学习笔记】08.数据结构基础 二叉树初步练习1

此次重点在于二叉树概念的理解,二叉树的结构体构造,er

【算法学习笔记】10.数据结构基础 二叉树初步练习3(遍历与递归复习)

首先先来复习一下递归法解决问题。引例就用十分经典的

【算法学习笔记】11.数据结构基础 二叉树初步练习4

记录二叉树的最大宽度W和深度

【算法学习笔记】12.数据结构基础 图的初步1

= ,=  妈蛋,拓扑排序和欧拉回路先fangyi

C++算法与数据结构学习笔记------单链表实现多项式

#include template class List; template class Node{ friend class List; private: T coef,e...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【算法学习笔记】07.数据结构基础 链表 初步练习
举报原因:
原因补充:

(最多只允许输入30个字)