文章目录
第一章 绪论
- 数据结构是一门讨论对于非数值计算的问题中计算机的操作对象,如何存储数据、采用适合的方式表示结构(关系)、实现操作(各种算法)的课程。
- o( c ) < o(log2n)<o(n)<o(nlog2n)<o(n2)<o(n3)<n(2n)<o(n!)
- 顺序结构:存储是顺序的,读取是随机的
- 链式存储:存储是随机的,读取是顺序的
- 特性:有穷性,确定性,可行性,输入,输出
- 评价算法优劣的基本标准:正确性,可读性,健壮性,高效性
是图结构
第二章 链表 顺序表
- 线性表是一种逻辑结构,有顺序存储、链式存储
- 顺序表是物理结构,逻辑上相邻的数据元素,物理次序也是相邻的,顺序存储,随机读取
- 链式映射逻辑上相邻的数据元素,物理位置不要求相邻,内存中存储单元连续不连续都可以,前插o(1),遍历删除后插o(n)
- 对于频繁的插入或删除,宜采用链表作为存储结构
第三章 栈和队列
一串数据依次通过一个栈,并不能保证出栈数据的次序总是倒置,可以产生多种出栈序列。一串数据通过一个栈后的次序由每个数据之间的进栈、出栈操作序列决定,只有当所有数据“全部进栈后再全部出栈”才能使数据倒置。事实上,存在一种操作序列――“进栈、出栈、进栈、出栈……”――可以使数据通过栈后仍然保持次序不变。
题目中输出序列的第一个元素是i,则第j个输出元素是不确定的。
第四章 串、数组、广义表
‘
第五章
第六章
- 普利姆算法——加点法:找一条权值最小的边加入集合,同时点加入集合
- 克鲁斯卡尔算法——加边法:
- Prim算法适合构造一个稠密图G的最小生成树,Kruskal算法适合构造一个稀疏图G的最小生成树。
- 广度优先遍历通常借助队列来实现算法,深度优先遍历通常借助栈来实现算法
- 深度优先遍历类似于二叉树的先序遍历,广度优先遍历类似于二叉树的层次遍历
36 = n * (n -1)/2
第七章
可能情况:
第八章
- 希尔排序
- 外部排序