![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
Y云飞
这个作者很懒,什么都没留下…
展开
-
平衡二叉树——个人笔记
先看一个问题给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST) 并分析问题所在.左边BST存在的问题分析:1)左子树全部为空,从形式上看,更像一个单链表.2)插入速度没有影响3)查询速度明显降低(因为需要依次比较),不能发挥BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢4)解决方案-平衡二叉树(AVL)基本介绍1)平衡二叉树也叫平衡二叉搜索树(Self-balancing binarysearch tree)又被称为AVL树,可 以保证查询效率较高。原创 2020-05-11 12:09:35 · 200 阅读 · 0 评论 -
二叉排序树——个人笔记
需求给你一个数列(7,3, 10, 12,5,1,9),要求能够高效的完成对数据的查询和添加。解决方案分析.➢使用数组1)数组未排序,优点:直接在数组尾添加,速度快。缺点:查找速度慢2)数组排序,优点:可以使用二分查找,查找速度快,缺点:为了保证数组有序,在添加新数据时,找到插入位置后,后面的数据需整体移动,速度慢。➢使用链式存储-链表不管链表是否有序,查找速度都慢,添加数据速度比数组快,不需要数据整体移动。➢使用二叉排序树二叉排序树介绍二叉排序树: BST: (Binary Sort(原创 2020-05-11 10:21:51 · 265 阅读 · 0 评论 -
赫夫曼编码——个人笔记
基本介绍赫夫曼编码也翻译为_哈夫曼编码(HuffmanCoding),又称霍夫曼编码,是一种编码方式,属于一种程序算法赫夫曼编码是赫哈夫曼树在电讯通信中的经典的应用之一。赫夫曼编码广泛地用于数据文件压缩。其压缩率通常在20%~90%之间赫夫曼码是可变字长编码(VLC)的一种。Huffman于 1952年提出-种编码方法,称之为最佳编码原理剖析按照字母出现的次数,进行排序,构建出一颗WPL最小的赫夫曼树,根据赫夫曼树,给各个字符规定编码,向左的路径为0向右的路径为1得出编码如下:0原创 2020-05-11 09:12:16 · 442 阅读 · 0 评论 -
赫夫曼树——个人笔记
基本介绍1)给定n个权值作为n个吐子结点,构造一棵二叉树, 若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(HuffmanTree),还有的书翻译为霍夫曼树。2)赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近。赫夫曼树几个重要概念和举例说明路径利路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结 点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1结点的权及带权路径长度:若原创 2020-05-11 08:13:02 · 168 阅读 · 0 评论 -
堆排序算法实现-笔记
要想知道堆排序就必须先了解什么是大顶堆和小顶堆堆排序堆排序基本介绍1)堆排序 是利用堆这种数据结构而设计的一种排序算法,堆排序是-种选择排序,它最坏,最好,平均时间复杂度均为0(nlogn),它也是不稳定排序。2)堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值称为大顶堆,注意:没有要求结点的左子节点的值和右子节点的值的大小关系。3) 每个节点的值都小于或等于其左...原创 2020-04-27 12:24:25 · 132 阅读 · 0 评论 -
数据结构-顺序存储二叉树的遍历
二叉数有三种遍历方式:前序遍历:根节点、左节点、右节点中序遍历:左节点、根节点、右节点后序遍历:左节点、右节点、根节点总结起来就是根节点在哪,它就是什么遍历方式。就以这张图为例:它的前序遍历为:1,2,4,5,3,6,7它的中序遍历为:4,2,5,1,6,3,7它的后序遍历为:4,5,2,6,7,3,1而我们这章要说的是以数组的方式来存放数字,在遍历数组是仍然可以以前序遍历、中...原创 2020-04-26 14:44:52 · 523 阅读 · 0 评论