[笔记]数据结构

简介: [笔记]数据结构

线性表

栈和队列

字符串

数组和广义表

树和二叉树

哈夫曼树

哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。

所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的路径长度是从树根到每一结点的路径长度之和,记为WPL=(W1L1+W2L2+W3L3+…+WnLn),N个权值Wi(i=1,2,…n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,…n)。可以证明哈夫曼树的WPL是最小的。

构造方法和思路

1.根据给定的n个权值{w1,w2,…,wn}

构成二叉树集合F={T1,T2,…,Tn},

其中每棵二叉树Ti中只有一个带权为wi的根结点,其左右子树为空.

2.在集合F中 选取两棵根结点权值最小的树 作为左右子树构造一棵新的二叉树, 且置新的二叉树的根结点的权值为左右子树根结点的权值之和

3.在集合F中删除这两棵树,同时将新的二叉树加入F中.

4.重复2、3,直到集合F只含有一棵树为止.(得到哈夫曼树)

查找

排序

相关文章
|
4月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--希尔排序
数据结构与算法(Java篇)笔记--希尔排序
|
3月前
|
存储 算法
【单向链表】数据结构——单向链表的介绍与代码实现&笔记
【单向链表】数据结构——单向链表的介绍与代码实现&笔记
|
3月前
|
存储 算法
【树】数据结构——树和二叉树的概念&笔记
【树】数据结构——树和二叉树的概念&笔记
|
3月前
|
算法 Java 索引
12.12_黑马数据结构与算法笔记Java
12.12_黑马数据结构与算法笔记Java
32 1
|
2月前
|
存储 算法 C语言
软考中级之数据库系统工程师笔记总结(二)数据结构与算法
软考中级之数据库系统工程师笔记总结(二)数据结构与算法
25 0
|
3月前
|
存储 算法 Linux
【内核链表】数据结构——深入理解内核链表的概念和操作&笔记
【内核链表】数据结构——深入理解内核链表的概念和操作&笔记
【循环链表】数据结构——单向循环链表和双向循环链表操作&笔记
【循环链表】数据结构——单向循环链表和双向循环链表操作&笔记
【数据结构】做题笔记--区间反转链表
【数据结构】做题笔记--区间反转链表
|
4月前
|
存储 机器学习/深度学习 人工智能
【软件设计师—基础精讲笔记8】第八章 数据结构
【软件设计师—基础精讲笔记8】第八章 数据结构
84 0
|
4月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--快速排序
数据结构与算法(Java篇)笔记--快速排序