跟了几节王道课,发现在解决线性表问题时我们只需要形象地画出该线性表即可更好、更快地解决问题,对于考研者和数据结构初学小白来说很适用! 1、认识线性表 线性表:由n个数据元素组成的有限序列 线性表由存储结构分为:顺序存储和链式存储 线性表的顺序存储结构称为顺序表(具有随机和顺序存取特性),如:数组 线 ...
分类:
其他好文 时间:
2020-06-28 00:35:12
阅读次数:
102
一、第七章内容小结 1. 查找的基本概念 2. 线性表的查找 ① 顺序查找:从表的一端开始依次将记录的关键字和给定值进行比较,某记录的关键字和定值相等则查找成功;反之,扫描整个表未找到相等记录,则查找失败。顺序查找适用于线性表的顺序存储结构和链式存储结构。 2-1基于顺序表的顺序查找算法: 1 in ...
分类:
其他好文 时间:
2020-06-27 16:03:50
阅读次数:
78
一.顺序队列的改进 队列元素的出列是在队头,即下标为0的位置,那也就意味着,队列中的所有元素都得向前移动,以保证队列的队头(也就是下标为0的位置)不为空,此时的时间复杂度为0(n)。 可有时想想,为什么出队列时一定要全部移动呢,如果不去限制队列的元素必须存储在数组的前n个单元这一条件,出队的性能就会 ...
分类:
其他好文 时间:
2020-06-15 19:21:55
阅读次数:
93
#线性表的顺序存储结构 ####一、线性表有两种物理结构:顺序存储结构与链式存储结构 ####二、线性表的顺序存储结构,指的是用一段地址连续的存储单元一次存储线性表的数据元素。 说白了,线性表的顺序存储结构,就是线性表的数据元素的内存地址是连续的。可以用占座来比喻一下,就是占了一块地方的几个位置。多 ...
分类:
其他好文 时间:
2020-06-14 18:41:11
阅读次数:
66
1.顺序存储结构不足的解决办法 线性表的顺序存储结构就是插入和删除时,需要移动大量元素 问题的根源在于:相邻的两个数据元素的存储位置具有邻居关系 插入操作,为了保持原有的数据元素的相邻关系,插入位置之后的数据元素以此往后移动。 删除操作,所删元素留下的空隙自然需要你补,数据元素要往前移动。 解决办法 ...
分类:
其他好文 时间:
2020-06-11 21:44:20
阅读次数:
51
第五章首先学了树的定义和树的基本术语,我觉得比较重要的是结点的度(结点拥有的子树数)和数的度(树内各结点度的最大值)。然后引入了二叉树的定义,它可以是空树,也可以是非空树,知道了二叉树有5种基本形态。接着了解了树和二叉树的ADT。还学了二叉树的性质和满二叉树(每一层上的结点数都是最大结点数,即每一层 ...
分类:
其他好文 时间:
2020-05-31 19:39:17
阅读次数:
69
第五章学习了树与二叉树等相关内容 具体有如何去遍历一颗二叉树,分为层次遍历,先序遍历,中序遍历和后序遍历。其次还有最优的哈夫曼树,怎么去构造一棵哈夫曼树,从低往上构造等等。以及树的构造中会用到的链式存储及顺序存储结构还有借助数组来解决相关问题,定义树时采用的是递归的方式。 #include<iost ...
分类:
其他好文 时间:
2020-05-30 16:05:52
阅读次数:
78
一、栈的基本概念:只允许在一端进行插入或者删除操作的线性表 <后进先出> 栈顺序存储结构: 共享栈:将两个栈底设置在共享空间的两端,栈顶向空间中间延伸 判空:0号栈 top == -1 1号栈 top == MaxSize 栈满:top1 - top0 == 1 优点:存取时间复杂度仍未O(1),但 ...
分类:
其他好文 时间:
2020-05-29 12:04:35
阅读次数:
66
顺序栈 顺序栈定义 用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时 由于栈的操作的特殊性,还必须附设一个栈顶指针(top)来动态的指示栈顶元素在顺序栈中的位置。 通常以 top= -1 表示栈空。 结构体定义 struct SeqStack{ int MAX ...
分类:
其他好文 时间:
2020-05-28 21:55:28
阅读次数:
76
偷个懒,整合一下书上代码就得到了 顺序存储: 1 #include<iostream> 2 #include<cstdlib> 3 #define MaxSize 30 4 5 using namespace std; 6 7 struct SqStack { 8 int data[MaxSize] ...
分类:
其他好文 时间:
2020-05-25 17:29:31
阅读次数:
101