上一周做了二叉树和HuffmanTree的实际操作。
不一次性贴出来了,只贴出关键代码部分
二叉树的储存结构:
typedef struct bitnode
{
int data; //结点数据域
struct bitnode *lchild, *rchild; //左右孩子指针
} *binary_tree;
先序遍历建立二叉树:
通过递归的方式,遇到‘#’返回上一层,否则生成根节点,向左右孩子拓展。
void first_creat_binarytree(binary_tree &T)
{
char ch;
cin >> ch;
if (ch == '#') T = NULL; //递归结束,建空树
else
{
T = new bitnode;
T->data = ch; //生成根节点
first_creat_binarytree(T->lchild);
first_creat_binarytree(T->rchild);
}
}
遍历二叉树:
这里采用的是中序遍历,将三条语句的顺序

本文介绍了二叉树的储存结构及通过先序遍历建立二叉树的方法,还详细讲解了HuffmanTree的构建过程,包括其储存结构、选择权值最小的结点策略。同时阐述了HuffmanCode的实现,所有相关函数经过测试验证可行。
最低0.47元/天 解锁文章
2977

被折叠的 条评论
为什么被折叠?



