数据结构
文章平均质量分 87
千千千千尺
拒绝溺死于鸡汤
展开
-
[数据结构]第四章-队列
·队列是一种特殊的表,只在表首删除,只在表尾插入。又称先进先出表(FIFO表)。(表首->队首;表尾->队尾)·支持的运算:1.QueueEmpty(Q):队列Q是否为空 2.QueueFull(Q):队列Q是否已满 3.QueueFirst(Q):返回队首元素 4.QueueLast(Q):返回队尾元素 5.EnterQueue(x,Q):在队尾插入元素x 6.DeleteQueue(Q原创 2016-10-08 17:18:17 · 444 阅读 · 0 评论 -
[数据结构]第九章-优先队列
优先队列:以集合为基础的抽象数据类型· 支持运算: 1.Min(H):返回优先队列H中具有最小优先级的元素 2.Insert(x,H):将元素x插入优先队列 3.DeleteMin(H):删除并返回优先队列中具有最小优先级的元素· 与字典的区别:字典插入运算仅当要插入的x与当前所有元素线性序值都不同时才插入。而优先队列中不同的元素可以有相同的优先级。· 优先队列的实现如果用字典实现有限队列:若原创 2016-12-26 17:09:35 · 874 阅读 · 0 评论 -
[数据结构]第十一章-图论
图的概念图:由V和E两个集合组成的二元组 G(V,E)子图:V’是V的子集,E’是E的子集,且E’中的边所关联的顶点均在V’中,则G’ = ( V’ , E’ )也是一个图,称其为G的子图生成子图: V’ = V连通分支:无向图G的极大连通子图称为G的连通分支。任何连通图都只有一个连通分支,而非连通图有多个连通分支。通俗来讲,一个图被分成几个小块,每个小块是联通的,但小块之间不联通,那么每个小块称为原创 2016-12-27 17:10:39 · 787 阅读 · 0 评论 -
[数据结构]第六章-树
树的基本概念 节点的度:节点的儿子数 树的度:Max{节点的度} 节点的高度:节点到各叶节点的最大路径长度 树的高度:根节点的高度 节点的深度(层数):根节点到该节点的路径长度树的遍历 ·前序遍历:根左右(x,Tl,Tr) ·中序遍历:左根右(Tl,x,Tr) ·后序遍历:左右根(Tl,Tr,x)树的表示法1.父节点数组表示法 (寻找父节点O(1),寻找儿子原创 2016-12-02 10:12:35 · 1213 阅读 · 0 评论 -
[数据结构]第五章-排序与选择
排序 就地/非就地 稳定/不稳定(如 5’, 3 , 5 排序后变为 3 , 5 , 5’为不稳定)·O(n^2) 的排序:·简单排序算法 (但 直接插入排序最好情况(有序时)为O(n))·O(nlogn)的排序:·快速排序 (Partition操作复杂度O(n) -> 借鉴此操作的算法,如O(n)时间将负数放左边正数放右边等) (若每次划分都恰好得到两个大小相等的区域则复杂原创 2016-10-10 10:32:30 · 434 阅读 · 0 评论 -
[数据结构]第八章-字典
当集合中的元素有一个线性序,即全集合是一个有序集时,涉及到与这个线性序有关的集合运算的时候,用符号表表示时会很难实现或效率不高,因此引入字典这一抽象数据类型,字典中元素有一个线性序,且支持涉及线性序的一些集合运算。字典:以有序集为基础的抽象数据类型。·支持运算:1.Member(x,S):成员运算 2.Insert(x,S):插入运算 3.Delete(x,S):删除运算 4.Predeces原创 2016-12-23 20:36:27 · 720 阅读 · 0 评论 -
[数据结构]第二章-表
**表**是由n个同一类型的元素a1,a2,...,an组成的有限序列。(元素不可对调,顺序表示了逻辑关系)**·支持的运算:**1.ListEmpty(L):表L是否为空2.ListLength(L):表L的长度3.ListLocate(x,L):元素x在表L中的位置(若x在表中重复出现多次,则返回最前面的x的位置)4.ListRetrieve(k,L):返回表L的位置k处的元素(若表中没有位置k时,原创 2016-09-28 11:38:13 · 389 阅读 · 0 评论 -
八种常见排序算法
初学数据结构,记录下接触到的一些常见排序算法的个人理解。以下根据算法是否基于比较分为两类,其中包括有基于比较的排序: 冒泡排序 插入排序 选择排序 快速排序 合并排序 非基于比较的排序: 计数排序 桶排序 基数排序 以下论述的时候为描述方便默认待排序元素是整型且要求从小到大排序,数组a从0存到n-1。1.1冒泡排序冒泡排序的基本思想是,将待排序原创 2016-10-15 17:03:16 · 774 阅读 · 0 评论 -
[数据结构]第七章-集合与符号表
集合 · 用位向量实现ADT集合并进行集合的并、交等运算: 用一个n位的向量v来存储集合A的特征函数值(为1为属于集合,为0不属于集合)可以唯一地表示集合A。优点是判断元素是否属于集合、元素的插入和删除都只要用O(1)的时间。缺点是当n很大时占空间很大,有一个办法是一个数组位置存放一个大数而非只放一位0或1,大数的二进制串就是A中一段元素的特征函数值。符号表 ·符号表是以集合为基础,支持成员运原创 2016-12-21 16:37:29 · 1193 阅读 · 0 评论 -
[数据结构]第三章-栈
·栈是一种特殊的表,只在表首进行插入和删除操作(表首->栈顶;表尾->栈底)(后进先出表/LIFO表)·支持的运算:1.StackEmpty(S):栈S是否为空(top = -1) 2.StackFull(S): 栈S是否已满 3.StackTop(S):返回栈S的栈顶元素 4.Push(x,S):元素x入栈 5.Pop(S):删除并返回栈顶元素·应用实例:0.后缀算术表达式求值原创 2016-09-28 12:05:37 · 570 阅读 · 0 评论 -
[数据结构]第一章-思维题
作业题:1.3 相亲大会(最大连续子串和问题)#include<cstdio> #include<iostream> #include<algorithm> using namespace std; int arr[100010]; int main() { int n; cin >> n; int i; for(i = 0; i原创 2016-09-28 11:01:50 · 309 阅读 · 0 评论 -
[数据结构]第十章-并查集
**并查集** : 以**不相交集合**为基础的抽象数据类型**·** **支持运算**:1.UFunion(A,B,U):将并查集U中的集合A和B合并,其结果取名为A或B2.UFfind(e):找出包含元素e的集合,并返回该集合的名字**·** **实现思想**:每个集合用一棵树表示,树的结点用于存储集合中的元素名和一个指向其父节点的指针,树根结点的元素代表该树所表示的集合。**·** **用原创 2016-12-27 17:05:04 · 399 阅读 · 0 评论