- 博客(16)
- 收藏
- 关注
原创 数据结构(树)
目的是无论位置的编号是多少,把编号的地址取值然后放入指针,从而探寻指针的方式实现对结点编号的索引和取值的查找。5、二叉树叶结点个数为n0,一个儿子的分支结点数为n1,有两个儿子的为n2,边的数量为e。4、如果二叉树每个分支结点都有两个儿子,叶节点数为n,则分支结点的个数为n - 1。(2)完全二叉树:存在n个结点的每个结点和满二叉树中编号1-n结点一一对应。(1)i = 1为根节点,i > 1 则 i / 2向下取整为父母结点。(2)2i > n 则结点无左子女,否则结点2i为i的左子女。
2023-03-23 11:39:21
284
1
原创 数据结构(顺序查找、折半查找、分块查找、散列查找)
2、为每一块取出关键字,然后建立索引表方式来进行查找,索引表是排序的因此可以通过折半排序方式查找关键字。1、将线性表分解成若干块,块内结点任意存放,块与块之间必须排序。3、在快速排序的方式下实现排序然后采用折半查找的方式。2、适合任意存储结构,不要去有序,适应结点的动态变化。1、顺序查找简单但速度慢。2、不适应结点的动态变化。1、有序存储的前提下。
2023-03-16 17:39:33
627
1
原创 数据结构(分配排序)
2、举例基数排序(先按最低位排序依次分配到10个不同的数组中去),也可以采用从高到低的方法但这样明显会利用到递归的思想。1、采用先分配后收集的思想来对数据进行排序。
2023-03-13 23:16:56
207
原创 数据结构(链表)
1、单链表采用两个域,一个数据域,一个为指针域。3、通常会采用附加头结点的方式来作为表头结点。2、head = NULL来判断是否为空链表。
2023-03-13 20:48:37
94
原创 数据结构(顺序表)- 队列
3、设置两个指针,一个头指针front指向队头,另一尾指针为rear。1、插入只允许在表尾,删除只允许在表头一端进行,属于先进先出表。2、允许插入的为队尾,删除一端为队头。
2023-03-12 11:44:51
239
原创 数据结构(顺序表)- 栈
后缀表示式取操作数则进栈,若是运算符则将栈顶和次栈顶连续出栈如234+*82/- 结果为10,对输入的符号进行依次的判断,符号则取出栈顶两次进行运算。通过运算符栈中优先级的方式来对操作数栈进行操作。如2*(3+4)-8 / 2。1、栈中的插入与删除只允许在表尾一端进行。(操作受限)的线性表。若进行运算则加入符号到运算符栈中去,否则增加数字到操作数栈中;3、我们通过创建栈顶指针的方式实现栈的出入。中缀表达式分为运算符栈和操作数栈。
2023-03-12 10:51:26
104
原创 字符串匹配——KMP算法
第一次匹配中,前四个字符匹配成功,我们找出最大相同的前5个字符中的前缀与后缀相同,因此我们回退到最大后缀相同的初始位置,重新进行匹配。借助辅助数组next的方式,出现字符串不匹配时,获取之前已匹配的字符,不必从头重新匹配。j表示字符串的下标,j=0是字符a位置,a位置没有字符无前后缀 令next[1] = 0。从头到位依次将模式串和母串进行匹配,遇到不匹配的则向后移位重新判断,时间复杂度较高。例母串“ababadergds”子串“ababdea”j = 1是只有a无前后缀。
2023-03-11 23:28:43
114
原创 数据结构——分配排序
复杂性分析:队列初始化O(r)的时间,分配需要O(r)的时间,收集工作也需要O。最高位优先的方式要采用多次递归,因此一般多采用最低位优先的排序方式。(r)的时间,一共d趟,共需要O(d(n + 2r))时间。分两种一种从最高位排序,一种从最低位开始排序。1、采用链式存储结构的方式。2、采用顺序存储结构的方式。空间为O(n + r)
2023-03-10 00:01:10
194
原创 数据结构(顺序表)-线性表
(3)判断表是否为满 (表结点数是否为最大允许个数)(2)判断表是否为空 (表结点个数是否为零)(8)删除表中的第i个位置结点。(7)表中第i个位置插入结点。(6)查找表中值为x的结点。(5)取表中第i个结点数。(4)求表长(结点数)
2023-03-02 12:03:20
170
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅