树与二叉树(六)

本篇文章是介绍树与二叉树知识点的最后一篇文章,主要简单的介绍了哈夫曼树与哈夫曼编码

最优树的定义

结点的路径长度:从根结点到该结点的路径上分支的数目

树的路径长度:树中每个结点的路径长度之和

树的带权路径长度:树种所有叶子结点的带权路径之和WPL(T) = Σwkjk(对所有叶子结点,权值*分支数)

More

树与二叉树(五)

本篇文章简单介绍树和森林的表示方法、森林与二叉树的关系以及树和森林的简单遍历

树和森林的表示方法

树的三种存储结构

1
2
3
双亲表示法
孩子链表表示法
树的二叉链表(孩子-兄弟)存储表示法

More

用顺序栈解决括号匹配问题

本文导入的文件"API.h""API.c"为本人在先前写的小轮子,详情参见以前的博客

http://www.saberismywife.com/2016/09/25/栈基础函数C语言实现/

括号匹配问题

问题描述:

设一个表达式中可以包含三种括号:“(”和“)”、“[”和“]”、“{”和“}”,并且这三种括号可以按照任意 的次序嵌套使用,考查表达式中的括号是否匹配。

More

树与二叉树(三)

本篇文章是树系列的第三篇文章,主要介绍二叉树的遍历和建树

二叉树的遍历

遍历的定义:顺着某一条搜索路径巡防二叉树中的结点,使得每个结点均被访问一次,而且仅被访问一次。

“遍历”是任何类型都有的操作,对线性结构来说,只有一条搜索路径(因为每个结点只有一个后继),故不需要另加讨论。而二叉树是非线性结构,每个结点有两个后继,则存在如何遍历即按什么样的搜索路径来进行遍历的问题。

More

树与二叉树(二)

本篇文章是树系列的第二篇文章,主要介绍二叉树的存储结构和简单遍历算法的应用举例

二叉树的顺序存储结构定义

[笔者注]由于过于浪费空间,表示这个尽量不要使用

1
2
3
4
5
//定义二叉树的最大结点数
#define MAX_TREE_SIZE 100
//0号单元存储根节点
typedef tElemType SqBiTree[ MAX_TREE_SIZE]; //声明二叉树
SqBiTree ty;

More