
数据结构
SuperYang_
山高人为峰
展开
-
树 & 二叉树基本概念
文章中部分内容和思路来自《数据结构、算法与应用 c++语言描述》简单树1.定义一棵树t是一个非空的有限元素集合,其中一个元素为根(root),其余元素(如果有的话)组成t的子树(subtree)2.元素(节点)间的关系比较简单(直观),一笔带过:Joe和Ann,Mary,John是父子关系Mary,Ann和John是兄弟关系Joe和Chris祖孙原创 2018-01-30 14:00:56 · 548 阅读 · 0 评论 -
哈夫曼编码c++/qt实现
接续上一篇文章《哈夫曼树与哈夫曼编码》:http://blog.youkuaiyun.com/superyang_/article/details/79276502--------main.cpp--------#include <QCoreApplication>#include "Huffman.h"#include <QDebug>#include <QString>...原创 2018-02-08 11:26:30 · 1991 阅读 · 1 评论 -
哈夫曼树与哈夫曼编码
文章中部分内容和思路来自《大话数据结构》准备知识路径长度:从树中一个节点到另一个节点之间的分支构成两个节点之间的路径,路径上的分支数目称作路径长度。例如图6-12-4(a)中从根节点到D节点的路径长度为4树的路径长度:从根节点到每个节点的路径长度之和。例如图6-12-4(a)中树的路径长度为1+1+2+2+3+3+4+4=20带权路径长度:从树中一个节点到根节点之间原创 2018-02-07 10:13:44 · 1067 阅读 · 0 评论 -
数据结构-搜索树
文章中部分内容和思路来自《数据结构、算法与应用 c++语言描述》二叉搜索树定义是一颗二叉树,可能为空;一颗非空的二叉搜索树应满足以下条件:1) 每个元素有一个关键字,并且任意两个元素关键字不同;因此,所有元素的关键字唯一2) 在根节点的左子树中,元素的关键字(若有)都小于根节点的关键字3) 在根节点的右子树中,元素的关键字(若有)都大于根节点的关键字4) 根节点的左右子树也都是二叉搜索树图14-1...原创 2018-02-26 15:05:25 · 505 阅读 · 0 评论 -
二叉树遍历c++实现
文章中部分内容和思路来自《数据结构、算法与应用 c++语言描述》接续上一篇文章《二叉树的存储与c++描述》:http://blog.youkuaiyun.com/superyang_/article/details/79213272遍历策略前序遍历:先访问一个节点,再访问左右子树。以图11-5 为例,访问次序依次为+*ab/cd;+++abcd;/+原创 2018-02-01 11:00:52 · 827 阅读 · 0 评论 -
数据结构-堆排序
文章中部分内容和思路来自《数据结构、算法与应用 c++语言描述》接续上一篇文章《堆》:http://blog.youkuaiyun.com/superyang_/article/details/79235370定义先用n个元素初始化一个大根/小根堆,然后逐个从堆中提取提取元素并输出。示意图假设需要排序的n个元素已构成大根堆,以下图为例:原创 2018-02-05 11:54:15 · 287 阅读 · 0 评论 -
数据结构-堆
文章中部分内容和思路来自《数据结构、算法与应用 c++语言描述》预备知识优先级队列:是0个或多个元素的集合,每个元素都有一个优先级或值,对优先级队列执行的操作有:1)查找一个元素 2)插入一个新元素 3)删除一个元素,与这些操作相对应的函数是top,push和pop。在最小优先级队列中,查找和删除的元素都是优先级最小的元素;在最大优先级队列中,查找和删除的元素都是优先级最大原创 2018-02-02 13:07:25 · 325 阅读 · 0 评论 -
二叉树的存储与c++描述
文章中部分内容和思路来自《数据结构、算法与应用 c++语言描述》接续上一篇文章《树 & 二叉树基本概念》:http://blog.youkuaiyun.com/superyang_/article/details/79204902数组描述将要表示的二叉树看做缺少部分元素的完全二叉树,如图:链表描述每个节点/元素有两个指针域,分别指原创 2018-01-31 10:55:58 · 862 阅读 · 0 评论 -
平衡搜索树
文章中部分内容和思路来自《数据结构、算法与应用 c++语言描述》准备知识如果搜索树的高度总是O(logn),我们就能保证查找、插入和删除的时间为O(logn),最坏情况下高度为O(logn)的树称为平衡树AVL树1.定义一颗空的树是AVL树;如果T是一颗非空的二叉树,TL和TR分别是其左右子树,那么当T满足以下条件,则T是一颗AVL树:1)TL和TR是AVL树 2)|HL-HR|<=1,其中...原创 2018-02-28 11:26:29 · 531 阅读 · 0 评论