![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构读书
文章平均质量分 86
你的小猫咪
这个作者很懒,什么都没留下…
展开
-
数据结构之排序
如在数据表中各个元素的排序码互不相同,则称为主排序码。主排序码排序结果唯一,次排序码排序结果不唯一(考虑排序的稳定性)。内部排序:所有数据元素存放在内存外部排序:数据元素过多,不断在内外存之间移动排序的性能开销时间:O(n2n^2n2):直接插入排序,选择排序,冒泡排序O(nlogn):快速排序,堆排序,归并排序空间:(额外空间开销)稳定性也是重要的评判指标每步将一个待排序元素,按排序码大小,插入到前面已经排好序的一组元素适当位置上去,直到全部插入为止。直接插入排序原理:当插入第i(i>=1)个原创 2022-07-07 23:50:23 · 357 阅读 · 1 评论 -
数据结构之图
邻接矩阵邻接表使用条件:e原创 2022-07-01 13:17:55 · 242 阅读 · 0 评论 -
数据结构之搜索
基于关键码的搜索,搜索结果唯一。基于属性的搜索,搜索结构可能不唯一。静态搜索结构/动态搜索结构为了提高搜索速度,需要用特殊的组织方式来组织需要的搜索信息。衡量一个搜索算法时间效率的标准是ASL判定树判定树包括内部节点和失败节点(描述两个相邻元素不在表中的数据值的集合),如果搜索达到失败节点,说明搜索不成功可以用来辅助计算ASL到达失败节点的关键码比较次数等于层次编号-1顺序搜索ASLsucc=∑i=0n−1pi(i−1)ASL_{succ}=\sum^{n-1}_{i=0}p_{i}(i-1)原创 2022-06-13 20:04:32 · 383 阅读 · 0 评论 -
数据结构集合与字典
并查集用树形结构来表示元素和所属子集的关系find算法:Union操作为了得到两个集合的并,只要将表示其中一个集合的树的根节点置为另一个集合的树的根节点的子女即可。Union的加权规则如果以i为根的树中节点个数小于以j为根的树中节点个数,则让j成为i的父。加权后树的高度不超过⌊log2m⌋\lfloor log_{2}m\rfloor⌊log2m⌋应用:等价类划分字典一对对的集合不同元素的key各不相同跳表0级链是包含所有元素的有序链表,第21,2∗21,3∗21...原创 2022-06-08 21:05:08 · 252 阅读 · 0 评论 -
数据结构之树
二叉树的性质:二叉树的存储:二叉树的数组存储:在编号时,如遇到空子树,假定此子树有编号二叉树的链表存储:二叉链表:三叉链表:含有n个节点的二叉链表中有n+1个空指针域,三叉链表则有n+2个用广义表建立二叉树中序遍历,其余遍历方式同理二叉树后序遍历的应用:计算二叉树节点个数,可以遍历根节点的左子树和右子树,分别计算出左子树和右子树的节点个数,然后把访问根节点的语句改为相加语句...原创 2022-06-07 19:19:47 · 89 阅读 · 0 评论 -
数据结构之数组,串,广义表
Loc(i,j,k)的计算特殊矩阵存储存储对称方阵时最多只需存储n(n+1)/2个元素下三角矩阵:Loc(i,j)=(i+1)∗i/2+jLoc(i,j)=(i+1)*i/2+jLoc(i,j)=(i+1)∗i/2+j上三角矩阵:Loc(i,j)=n+(n−1)+(n−2)+...+(n−i+1)Loc(i,j)=n+(n-1)+(n-2)+...+(n-i+1)Loc(i,j)=n+(n−1)+(n−2)+...+(n−i+1)=(2n−i−1)∗i/2+j=(2n-i-1)*i/2+j=(原创 2022-06-07 19:19:25 · 58 阅读 · 0 评论 -
数据结构线性表
顺序表原创 2022-05-31 16:44:21 · 53 阅读 · 0 评论 -
数据结构之栈和队列
栈括号匹配 void PrintMatchedParis(char *expression){ Stack<int> s(maxLenghth); int j,length=strlen(expression); for(int i=1;i<length;i++) { if(expression[i-1]=='(') s.Push(i); else if(expression[i-1]==')') { if(s.Pop(j)==true) co原创 2022-05-31 16:43:55 · 108 阅读 · 0 评论