数据结构与算法 反思总结
山淼
这个作者很懒,什么都没留下…
展开
-
数据结构概览
原创 2019-04-02 11:11:20 · 156 阅读 · 0 评论 -
线性结构 ——栈、队列、表的关系与思考
线性结构中,栈和队列算是表的特殊情况,它们有着各自的特性,换句话说,是在某些地方,限制了自身,不像表那样自由。 所以首先掌握表的使用,再对表的功能进行一定的限制,即可得到相关的栈和队列。 那是不是就是说:栈和队列不如表,或者说只要掌握表、使用表,不用管栈和队列,就足矣呢? 并不是如此。 不同的数据结构适应不同的场景,所以说没有最好,只有是否合适。 例如:解决排队的问题,用表显然也可以,它具备相关的...原创 2019-04-02 11:34:15 · 363 阅读 · 0 评论 -
循环结构
循环就像是一种附加属性,一种优化,对一些存储结构添加循环后,能解决一些内部问题。 循环的类型有:单向和双向。 什么样的结构可以添加循环? 顺序队列 链队列 顺序表 链表 注:栈不需要,因为栈只是对一端操作。 变化? 顺序xx(队列或表)和顺序循环xx(队列或表): 添加循环后:解决“假溢”问题,充分利用空间 带来的问题:如何判断“空满”状态? 链式xx和链式循环xx: 就单向而言: 若头尾...原创 2019-04-02 13:00:22 · 91 阅读 · 0 评论 -
注意点
带有node:注意指针和结点,指针!=结点,建议通过图形象的理解 带有count:注意序号和下标问题原创 2019-04-23 11:21:29 · 127 阅读 · 0 评论 -
栈、队列、表——顺序结构
顺序栈 顺序队列 一个头 一个头一个尾 顺序队列 :不断地入队出队会导致假满状态 即有些空间被浪费了 循环队列(如何让数组循环,除余) 能解决顺序队列假满状态的问题 需要注意的是: 1.如何判断空满两状态: (1)count 故需多开一个空间 (2)留一个位置 或 front指向前一个 具体讨论: ①不留一个位置且front不指向前一个: 满为frontrear; 空为front和rear...原创 2019-04-23 11:35:02 · 117 阅读 · 0 评论 -
顺序存储和链式存储
顺序存储(逻辑上连续,物理上内存连续) : 用数组:固定大小,常量初始化 用动态数组:即创建指针,可以有个默认大小值,再配合构造函数传size 链式存储(逻辑上连续,物理内存上不连续): 用结点:对结点的创建 struct(结构体)或class(类) struct默认为public, class默认为private (struct中也可实现初始化,就是类似class中的构造函数) 如: struc...原创 2019-04-23 11:37:14 · 1583 阅读 · 0 评论 -
栈、队列、表——链式结构
链栈:逻辑第一个和物理第一个不是同一个 给头结点 不给头结点 需不需要带记数的变量 ——可以不用。 可通过结点间的关系判断(注:链式结构中最好不带count,顺序结构带count,是因为没有更好的方式判空判满) 一般采用给头结点:缺点是要消耗空间 优点函数式简练,不需要判断太多特殊情况 具有普遍价值 对于不给头结点: 尝试后,发现也很简练,且相比带头结点,要少开空间 链队列: 先思考带头结点的情况...原创 2019-04-23 11:44:57 · 75 阅读 · 0 评论