数据结构学习笔记
西西L
这个作者很懒,什么都没留下…
展开
-
线性结构------线性表(二)
如果要对链表进行插入删除操作,用顺序结构需要找到目标位置然后移动大量元素,复杂度为O(n),此时就需要考虑线性表的链式存储结构。 链式线性表由n个结点通过指针域连接而成。最简单的链表为单链表。如图:单链表的抽象数据类型原创 2015-03-25 20:08:30 · 655 阅读 · 0 评论 -
PAT Pop Sequence
02-3. Pop Sequence (25)Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and pop randomly. You are supposed to tell if a given sequence of numbers is a原创 2015-03-14 16:38:03 · 820 阅读 · 1 评论 -
线性结构------线性表(一)
线性表(Linear List)由有限个类型相同的数据元素组成,除了第一个元素和最后一个元素外,其他元素都有唯一的前驱元素和唯一的后继元素。------表中元素个数成为线性表的长度。------线性表没有元素时成为空表。------表起始位置成为表头,结束位置成为表尾。线性表的抽象数据类型描述:数据对象集合:{a1,a2,a3,... ,an},每个元素类型为DataType,原创 2015-03-14 17:46:51 · 687 阅读 · 0 评论 -
线性结构------顺序栈
堆栈(Stack):具有一定操作约束的线性结构。只允许在一端进行插入删除操作,操作规则为“后进先出”,LIFO。栈的抽象数据类型描述:数据对象集合:一个有0个或多个元素的有穷线性表。基本操作集合:(1)初始化栈:void InitStack(Stack &s);(2)判断栈是否已满:bool isFull(Stack &s);(3)判断栈是否为空原创 2015-04-13 10:22:55 · 553 阅读 · 0 评论 -
线性表------链栈
链栈的存储结构其实就是单链表,插入和删除在链表头进行(书上这么写,个人认为只要是在链表一端操作即可)。链栈的数据结构类型为:#include #include typedef int DataType;struct LinkStack{ DataType data; struct LinkStack *next;};基本操作实现://初始化头节点, 数据域存储链栈大原创 2015-04-15 07:29:53 · 629 阅读 · 0 评论 -
线性结构------共享栈
如果一个程序需要使用多个栈,使用顺序栈就会造成栈空间大小难以估计,从而造成有的栈溢出有的栈空闲,此时可以建立一个共享栈,通俗地讲就是将两个栈的栈底设置在同一个数组的两端,栈顶位置用top1、top2表示。如图:所以共享栈的数据结构类型为:#include #define MAX 10#define INF 0xffffffftypedef int DataType;struc原创 2015-04-14 17:50:26 · 1054 阅读 · 0 评论