数据结构与算法
文章平均质量分 76
追光少年羽
这个作者很懒,什么都没留下…
展开
-
哈夫曼编码原理
字符集中)任一编码都不是其它字符的编码的前缀。原创 2022-07-19 22:25:12 · 3672 阅读 · 0 评论 -
二叉树知识总结
数组的搜索比较方便,可以直接用下标,但删除和插入就比较麻烦;链表与之相反,删除和插入元素很快,但查找比较慢;此时,二叉树应运而生,二叉树既有链表的好处,也有数组的好处,在处理大批量的动态数据时比较好用,是一种折中的选择。文件系统和数据库系统一般都是采用树(特别是B树)的数据结构数据,主要为排序和检索的效率。二叉树是一种最基本最典型的排序树,用于教学和研究树的特性,本身很少在实际中进行应用,因为缺点太明显,就像冒泡排序一样,因为效率问题并不实用,但也是我们必须会的。//默认null。...原创 2022-07-19 16:21:04 · 2662 阅读 · 1 评论 -
图的广度和深度优先路径搜索算法(python实现)
图是一种抽象数据结构,本质和树结构是一样的。图与树相比较,图具有封闭性,可以把树结构看成是图结构的前生。在树结构中,如果把兄弟节点之间或子节点之间横向连接,便构建成一个图。树适合描述从上向下的一对多的数据结构,如公司的组织结构。图适合描述更复杂的多对多数据结构,如复杂的群体社交关系。根据图的特性,图数据结构中至少要包含两类信息所有顶点构成集合信息,这里用V表示(如地图程序中,所有城市构在顶点集合)。所有边构成集合信息,这里用E表示(城市与城市之间的关系描述)。如何描述边?G表示图,则。,...原创 2022-07-15 14:44:22 · 4863 阅读 · 0 评论 -
二叉树的宽度
二叉树的宽度是指二叉树各层结点个数的最大值。求二叉树的宽度可以依据与二叉树的层次遍历,我们知道,二叉树的层次遍历借助于deque实现,每次打印当前结点后将其左子树右子树入队,此时队列中既包含当前层的结点,也包含下一层的结点,若我们将当前层的结点全部出队,剩余的就是下一层的结点个数。所以,我们可以使用maxWidth来表示最大宽度,若下一层的结点个数大于maxWidth,则更新maxWidth,最终队列为空,得到的maxWidth即为二叉树的宽度。以下是C++实现的源代码:...原创 2022-07-12 01:14:00 · 2522 阅读 · 0 评论