数据结构
文章平均质量分 92
小非肥
写博客的小傻瓜
展开
-
java实现树的深度优先遍历和广度优先遍历
1.深度优先遍历DFS深度优先遍历是图论中的经典算法,其利用了深度优先搜索算法可以产生目标图的相应拓扑排序表,采用拓扑排序表可以解决很多相关的图论问题,如最大路径问题等等。深度优先搜索用**栈(stack)**来实现,整个过程可以想象成一个倒立的树形:1、把根节点压入栈中。2、每次从栈中弹出一个元素,搜索所有在它下一级的元素,把这些元素压入栈中。并把这个元素记为它下一级元素的前驱。3、找到所要找的元素时结束程序。4、如果遍历整个树还没有找到,结束程序。递归实现 List<TreeN原创 2020-10-27 10:10:11 · 4985 阅读 · 0 评论 -
哈夫曼编码
用一个例题来解释自己理解的哈夫曼编码例:现有一个由5个字母组成的34个符号的字符串:BABAB-ECADA-EABBB-BABEB-EDDAB-EEEBC-DEDE 做出五个字母哈夫曼编码将他们出现的频率由小到大排列:C:D:A:E:B = 2:5:7:9:11字母出现频率(有小到大)C2D5A7E9B111.每次将出现频率最小的两个字母作为子节点第一次生成新节点暂定为n1,n1的频率为7。现在节点排序为n1:A:E:B原创 2020-10-06 19:07:00 · 617 阅读 · 0 评论