随笔分类 - 理论知识 / 数据结构
摘要:基本概念 键树,又称数字查找树(Digital Search Tree)。 它是一棵度大于等于2的树,树中的每个结点中不是包含一个或几个关键字,而是只含有组成关键字的符号。 例如,若关键字是数值,则结点中只包含一个数位;若关键字是单词,则结点中只包含一个字母字符。 这种树会给某种类型关键字的表的查找
阅读全文
摘要:矩阵在计算机图形学、工程计算中占有举足轻重的地位。在数据结构中考虑的是如何用最小的内存空间来存储同样的一组数据。所以,我们不研究矩阵及其运算等,而把精力放在如何将矩阵更有效地存储在内存中,并能方便地提取矩阵中的元素。 数组的存储结构 一个数组的所有元素在内存中占用一段连续的存储空间。 - 以行优先方
阅读全文
摘要:基本概念 数据: 数据是对客观事物的符号表示,在计算机科学中指所有能输入到计算机中并被计算机程序处理的符号的总称。数据的含义很广泛,如图像、声音等都可以通过编码而归之为数据的范畴。 数据元素:(行)(元组)(记录) 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素
阅读全文
摘要:反证法 基本概念: 一般地,假设原命题不成立(即 在原命题的条件下,结论不成立),经过正确的推理,最后得出矛盾,因此说明假设错误,从而证明原命题成立,这样的证明方法叫做反证法。 基本操作: 分清命题**\(p=>q\)**的条件和结论; 做出与命题结论$q$相矛盾的假定$┐q$; 由$p$和$┐q$
阅读全文
摘要:串的存储结构 定长顺序存储表示 基本概念: 类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列。在串的定长顺序存储结构中,为每个串变量分配一个固定长度的存储区,即定长数组。 存储结构: #define MAXLEN 255 //预定义最大串长为255 typedef struct
阅读全文
摘要:引入头结点: 统一第一个元素结点与其他结点的操作; 统一空表和非空表的处理。 顺序表 数组有上界和下界,数组的元素在上下界内是连续的。 存储10,20,30,40,50的数组的示意图如下: 数组的特点是:数据是连续的;随机访问速度快。 数组中稍微复杂一点的是多维数组和动态数组。对于C语言而言,多维数
阅读全文
摘要:**大O表示法:**算法的时间复杂度通常用大O符号表述,定义为T[n] = O(f(n))。称函数T(n)以f(n)为界或者称T(n)受限于f(n)。 如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n)。T(n)称为这一算法的“时间复杂度”。当输入量n逐渐加大时,时间复杂度的极限情形
阅读全文
摘要:栈和队列 我们以下的使用的栈或队列都是作为一个工具来解决其他问题的,我们可以把栈或队列的声明和操作写的很简单,而不必分函数写出。 栈:Stack 队列:Queue 栈和队列:Deque(double ended queue, 双端队列)(万能) 在Java Doc里建议使用Deque接口替代Stac
阅读全文
摘要:线性表可以是空表,树可以是空树,但图G(Graph)不可以是空图。就是说,图中不能一个顶点也没有,图的顶点集V(Vertex)一定非空,但边集E(Edge)可以为空,此时图中只有顶点而没有边。 若一个图有n个顶点,并且边数小于n-1,则此图一定是非连通图。 若一个图有n个顶点,并且有大于n-1条边,
阅读全文
摘要:(ElemType*)malloc(sizeof(ElemType)*InitSize); 此函数是一个指针型函数,返回的指针指向该分配域的开头位置。 树 树的性质 树中的结点数 = 所有结点的度数 + 1 度为m的树中第i层上至多有**$m^{i-1}$**个结点(i>=1) 高度为h的m叉树至多
阅读全文
摘要:|分类|排序算法|改进思路|最好情况|平均时间复杂度|最坏情况|空间复杂度|稳定性| | | | | | | | | | |插入排序|直接插入排序|基本排序方法|$O(n)$|$O(n^2)$|$O(n^2)$|$O(1)$|稳定| ||折半插入排序|确定有序序列的插入位置|$O(nlog_2n)$
阅读全文
摘要:**平均查找长度(ASL, Average Search Length):**在查找过程中,一次查找的长度是指需要比较的关键字次数,而平均查找长度则是所有查找过程中进行关键字比较次数的平均值,(即 $ASL=\sum查找概率*比较次数$)(一般为等概率1/n) **静态查找表:**查找表的操作无需动
阅读全文
摘要:堆(heap) 1. 堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 根节点最大的堆叫做最大堆、大根堆或大顶堆 根节点最小的堆叫做最小堆、小根堆或小顶堆 常见的堆还有二叉堆、斐波那契堆等。 2. 堆是在程序运行时
阅读全文
摘要:最近抽空整理了"数据结构和算法"的相关文章。在整理过程中,对于每种数据结构和算法分别给出"C"、"C++"和"Java"这三种语言的实现;实现语言虽不同,但原理如出一辙。因此,读者在了解和学习的过程中,择其一即可! 下面是整理数据数据和算法的目录表,对于每一种按照C/C++/Java进行了划分,方便
阅读全文


浙公网安备 33010602011771号