晓的博客

赫夫曼树

赫夫曼树 树的带权路径长度:树的带权路径长度规定为所有的叶子节点的带权路径长度之和(wpl 的和),wpl 最小的树就是赫夫曼树 给定 n 个权值作为 n 个叶子节点,构造一颗二叉树,若该树的带权路径达到最小(wpl),这样的二叉树称为最优二叉树。 赫夫曼树是带权路径最短的树,权越大离根结点距离越近 构建赫夫曼树 构建赫夫曼树的思路 从小到大进行排序,每个数据看成一个节点,每个...

树与数组链表的比较 数组存储方式的分析 优点:通过下标访问元素,速度快。对于有序数组,还可以使用二分查找提高检索速度 缺点: 如果要检索具体某个值,或者插入值,会整体移动,效率低 链式存储方式的分析 优点:插入,删除效率较高 缺点:检索效率低 树存储方式分析 提高数据存储,读取的效率,比如利用二叉排序树,即保证了数据查询的效率,也保证了数据修改,插入,删除...

树与数组链表的比较 数组存储方式的分析 优点:通过下标访问元素,速度快。对于有序数组,还可以使用二分查找提高检索速度 缺点: 如果要检索具体某个值,或者插入值,会整体移动,效率低 链式存储方式的分析 优点:插入,删除效率较高 缺点:检索效率低 树存储方式分析 提高数据存储,读取的效率,比如利用二叉排序树,即保证了数据查询的效率,也保证了数据修改,插入,删除...

递归

递归 -自己调用自己的函数 使用场景 8 皇后,汉诺塔,阶乘,迷宫 快排,归并,二分,分治 使用栈解决的问题->递归代码比较简洁 使用递归需要遵守的问题 执行一个方法时,就创建一个新的受保护的独立空间(栈空间) 方法的局部变量是独立的,不会相互影响 每个递归定义至少必须有一个条件,满足时递归不再进行,而是返回值退出 遵守谁调用,就将结果返回谁,...

栈 先入后出的有序列表 (FILO-First In Last Out) 栈是限制线性表中元素的插入和删除 只能在线性表一段进行的特殊线性表,允许插入和删除的一端称为栈顶,另一端为栈底 最先放入栈中元素在栈底,最后放入的元素在栈顶,删除则是最后放入的先删除,最先放入的最后删除。 栈涉及到的应用场景 子程序调用:在跳往子程序前,会先将下个指令的地址存放到堆栈中,子程...