- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 数据结构之树——二叉树
一、 二叉树定义一棵二叉树(binary tree)t是有限个元素的集合(可以为空)。当二叉树非空时,其中有一个元素称为根,余下的元素被划分成两颗二叉树,分别称为t的左子树和右子树。二叉树与树的根本区别:二叉树的每颗子树都恰好有两颗子树(其中有一个或者两个可能为空)。而树的每个元素可由任意数量的子树在二叉树中每个元素的子树都是有序的,有左子树和右子树之分。而树的子树是
2017-06-11 17:20:58
671
原创 数据结构之树——初识树
1 树的定义由一个或多个(n≥0)节点组成的有限集合T,且仅有一个节点称为根(root),当n> 1时,其余节点分为m(m≥0)个互不相交的有限集合T1,T2,…,Tm。每个集合本身又是一棵树,被称作这个根的子树。树的定义具有递归性,即树中还有树。2 与树有关的术语根:即根节点(没有前驱)叶子:即终端节点(没有后继)森林:指m棵互不相交的树的集合(例如没有根节点的子
2017-05-16 22:16:08
599
原创 数据结构之线性表——就近匹配(栈的应用)
1 就近匹配几乎所有的编译器都具有检测括号是否匹配的能力,如何实现编译器中符号的成对检测?例如:检测如下一串代码:#include int main() { int a[4][4]; int (*p)[4]; p = a[0]; return 0;2 算法思路从第一个字符开始扫描,当遇见普通字符时忽略,当遇见左符号时压入栈中,当遇见右符号时从栈中弹出栈顶符号,并进行匹配,匹配成功:继续进
2017-05-12 13:00:41
365
1
原创 数据结构之线性表——链表的顺序存储(数组描述)
1 线性表定义线性表(list)是零个或多个数据元素的集合,线性表中的数据元素之间是有顺序的,线性表中的数据元素个数是有限的,线性表中数据元素的类型必须相同。2 线性表数学定义线性表(linear list)也称为有序表(order list)。每一个实例都是元素的一个有序集合。每一个实例的形式为(e1,e2,e3,...,en-1),其中n为又穷自然数,ei是线性表的元素,i是元素e
2017-05-12 10:44:53
460
原创 数据结构之线性表——队列的链式存储
1 基本概念队列是一种特殊的线性表,也可以用线性表的链式存储来模拟队列的链式存储。链队列的表述如下图所示:2 链式队列存储的设计与实现其中链式队列的实现是基于链式链表设计的基础上实现的,链表的链式存储设计实现请参考《数据结构之线性表——链表的链式存储(链式描述)》(1)链式队列的结点定义typedef struct _tag_LinkQueueNode{ LinkL
2017-05-12 09:43:05
333
原创 数据结构之线性表——队列的顺序存储
1 队列的基本概念队列是一种特殊的线性表,队列仅仅在线性表的两端进行操作。队头(Front):取出数据元素的一端;队尾(Rear):插入数据元素的一端。队列不允许在中间部位进行操作。队列是一种先进先出(First in First out)的线性表,简称(FIFO),允许插入的一端称为队尾,允许删除的一端称为队头。假设队列是q=(a1,a2,a3,......,an),那么a1是队头元素,
2017-05-12 09:42:22
481
原创 数据结构之线性表——栈的链式存储
1 基本概念与栈的顺序存储相同,栈的链式存储也是基于线性表的链式存储的基础之上完成对栈的设计。其中栈的链式存储部分参考《数据结构之线性表——链表的链式存储(链式描述)》。栈的链式存储结构示意图如下所示:2 链式栈的具体实现分析(1)链式栈的存储节点定义包含链表的指针域节点和用户数据域指针。typedef struct _tag_LinkStack{ LinkListNode
2017-05-12 09:41:38
596
1
原创 数据结构之线性表——栈的顺序存储
1 栈的基本概念栈是一种特殊的线性表,栈仅能在线性表的一段进行操作,即在栈顶进行操作。栈的插入操作叫做进栈,也称压栈,入栈。栈的删除操作,也叫出栈,也叫作弹栈。需要说明的是,栈也是一个线性表,也就是说栈元素具有线性关系。只不过它是一种特殊的线性表而已。它的特殊之处在于限制了线性表插入和删除的位置,他始终只在栈定进行插入删除操作。这也就使得:栈底是固定的,最先进栈的只能在栈底,只能最后一个出
2017-05-12 09:40:48
353
原创 数据结构之线性表——约瑟夫环问题(循环链表的应用)
1 约瑟夫环问题描述:约瑟夫环问题是循环链表的经典应用:具体描述如下:n 个人围成一个圆圈,首先第 1 个人从 1 开始一个人一个人顺时针报数,报到第 m 个人,令其出列。然后再从下一 个人开始从 1 顺时针报数,报到第 m 个人,再令其出列,…,如此下去,求出列顺序。
2017-05-11 15:32:34
4661
1
原创 数据结构之线性表——循环链表(C语言描述)
1 循环链表的定义将单链表中最后一个数据元素的next指针指向第一个元素,如下图所示: 2 循环链表的游标定义:在循环链表中可以定义一个“当前指针”,这个指针通常称为游标,可以通过游标来遍历链表中所有元素。如下图所示: 3 循环链表的
2017-05-11 14:56:53
850
原创 数据结构之线性表——链表的链式存储(链式描述)
1 基本概念链式存储定义:为了表示每个数据元素与其直接后继元素之间的逻辑关系,每个元素除了存储本身的信息外,还需要存储指示其直接后继的信息。在线性表的链式描述中,线性表的元素在内存中的存储位置是随机的。每个元素都有一个明确的指针指向线性表的下一个元素的位置。在顺序表中元素的的地址是按照顺序排序的,在链式描述中,元素的地址是随机的。
2017-05-11 10:33:00
1004
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人