- 博客(12)
- 收藏
- 关注
原创 哈夫曼树和哈夫曼编码
基本术语1、路径和路径长度在一棵树中存在着一个节点序列K1,K2,K3…Kj,使得Ki是Ki+1的双亲,则称此节点序列是从K1~Kj的路径,因为树中每个节点只有一个双亲节点,所以他也是这两个之间的唯一路径,从K1~Kj所经过的分支数称为这两个节点之间的路径长度,他等于路径上的节点数减1.2、节点权和带权路径度在许多应用中将树中的节点赋值一个有意义的实数,称此实数为该节点的权,节点的带权路径长度规定为从树根节点到该节点之间的路径长度与该节点权的乘积。3、树的带权路径长度。
2023-06-11 17:56:30 302
原创 Prim 算法与 Dijkstra 算法(作业)
最短路径树只搜索权值最小,所以有v.key = w(u, v) + u.key,即每个点到其他点的最小值(最少是两个节之间的权值和)MST中任意AB两点之间的距离,并不比原始图中AB的距离短,即原始图中可能存在边E(A,B)**小于**MST中的E(A,B)。最小生成树只关心所有边的和最小,所以有v.key = w(u, v),即每个点直连其他点的最小值(最多只有两个节点之间的权值和)简单总结就是,Dijkstra的松弛操作加上了到起点的距离,而Prim只有相邻节点的权值。
2023-05-23 11:50:37 62
原创 二叉树的构建与遍历
之所以可以利用递归,因为当根据前序遍历结果可知,第一位是整颗树的根节点,而根据中序遍历中找到当前这个第一位的index,在中序遍历序列中该index之前和之后的两段被切分成了两颗子树,并且根据这两颗子树的长度可以从前序的列表中切除这两颗子树的前序遍历列表,因此我们发现对于每一个节点的操作一致,且最终的终止条件为最原始的前序为空时递归结束。该类题目的策略就是通过树的前序遍历和中序遍历来创建一颗已知树,并通过创建得到的树进行层序的遍历输出。对于二叉树的遍历,有四种方式:层序输出,前序输出,中序输出,后序输出。
2023-05-03 21:50:03 139
原创 线性表总结
线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。不带头双向循环链表:在Java的集合框架库中LinkedList底层实现就是不带头双向循环链表。
2023-04-19 23:46:42 31
原创 数据结构第一节课感受
利用散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址。除数据元素存储在一地址连续的存储空间外,尚需建立一个索引表,索引表的索引项指示存储结点的存储位置(下标)或存储区间端点(下标,非稠密索引),兼有静态和动态特性。除数据元素存储在一地址连续的存储空间外,尚需建立一个索引表,索引表的索引项指示存储结点的存储位置(下标)或存储区间端点(下标,非稠密索引),兼有静态和动态特性。逻辑结构包括线性结构,非线性结构(集合、树形结构、图形(网状)结构)
2023-03-22 20:28:05 228 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人