- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
注:本程序主要是关于二叉树的一些基本操作,包括前序遍历,中序遍历,后序遍历以及求出总结点以及叶子结点的数目(本程序在输入时是默认以先序序列输入各个结点的数值。如果是其它方式,则三个遍历程序会有略微变化)以及哈夫曼编码的输出。
以下程序除汉字外均为在英文环境中编写,可直接复制到VC编程软件中运行。
#include stdio.h
#include stdlib.h
#include string.h
#include conio.h //getch()所需
int num;
typedef struct node //定义二叉树的结构体
{
char data;
struct node *lchild,*rchild;
}BinTNode,*BinTree;
BinTree T;
typedef struct //定义哈夫曼的结构体
{
int weight;
int parent,lchild,rchild;
}HTNode,*HuffmanTree;
HuffmanTree p;
typedef char * *HuffmanCode;
void CreateBinTree(BinTree T) //建树
{
char ch;
ch=getch();
if (ch== )
{
printf(_);
T=NULL;
}
else
{
printf(%c,ch);
T=(BinTNode *)malloc(sizeof(BinTNode));
T-data=ch;
CreateBinTree(T-lchild );
CreateBinTree(T-rchild );
}
}
void Preorder(BinTree T) //先序遍历
{
if (T)
{
printf(%c,T-data);
Preorder(T-lchild);
Preorder(T-rchild);
}
}
void P() //先序遍历的调用
{
system(cls);
printf(先序遍历的结果如下:\n\n\n\n);
Preorder(T);
}
void Inorder(BinTree T) //中序遍历
{
if(T)
{
Inorder(T-lchild);
printf(%c,T-data);
Inorder(T-rchild);
}
}
void I() //中序遍历的调用
{
system(cls);
printf(中序遍历的结果如下:\n\n\n\n);
Inorder(T);
}
void Postorder(BinTree T) //后序遍历
{
if(T)
{
Postorder(T-lchild);
Postorder(T-rchild);
printf(%c,T-data);
}
}
void Po() //后序遍历的调用
{
system(cls);
printf(后序遍历的结果如下:\n\n\n\n);
Postorder(T);
}
int Ylen(BinTree T) //求叶子结点个数
{
if (T)
{
if(T-lchild==NULLT-rchild==NULL)
num++;
Ylen(T-lchild);
Ylen(T-rchild);
}
return num;
}
int Slen(BinTree T) //求总结点个数
{
if (T)
{
num++;
Slen(T-lchild);
Slen(T-rchild);
}
return num;
}
void l() //将总结点以及叶子结点的数目进行输出
{
system(cls);
num=0;
printf(叶子结点的个数为:%d\n\n\n\n,Ylen(T));
num=0;
printf(总结点的个数为:%d\n\n\n\n,Slen(T));
}
void m() //关于二叉树的操作总函数
{
int h;
system(cls);
printf(创造一个二叉链表存储的二叉树\n);
printf(请以先序序列输入所有结点的字符(虚结点用空格字符表示):\n);
CreateB
您可能关注的文档
- 供应链安全基本知识及常见术语释义.pdf
- 供应链风险管理研究进展的综述及分析.pdf
- 供应链金融的研究现状及评述.pdf
- 供应链竞争力评价指标体系研究.pdf
- 供应链融资产品和其成本收益分析.pdf
- 固体物理 第二篇 结合能.pdf
- 固体物理_3.1_晶体结合类型.pdf
- 固体物理阎守胜第一节 课后答案.pdf
- 关联容器当代博物馆建筑一种倾向.pdf
- 关系数据库和SQL环境.pdf
- 汽车零部件电动转向器装备制造项目可行性研究报告模板-备案拿地.doc
- 汽车零部件及钢构制造项目可行性研究报告写作模板-备案审批.doc
- 5G+工业互联网智能工厂项目商业计划书(仅供参考).docx
- 5G+工业互联网智能工厂项目申请报告(参考范文).docx
- 东风4B型机车柴油机清洗燃油精滤器柴油机99课件.pptx
- 5G+工业互联网智能工厂项目投资计划书(模板).docx
- 5G通信设备智能制造项目策划方案(范文参考).docx
- 年产新能源汽车连接器5000万件自动化设备项目可行性研究报告写作模板-申批备案.doc
- 年处理4万吨废旧锂电池项目可行性研究报告模板-立项拿地.doc
- 年产新型复合包装材料2300吨项目可行性研究报告写作模板-拿地申报.doc
最近下载
- 年产8万吨聚甲醛工艺的初步设计.docx
- 3D3S 基本操作手册.pdf
- 2019新疆生产建设兵团中考化学真题.doc VIP
- 8.铁路工程预算定额 路基工程宣贯讲义.ppt
- 房地产市场报告 -天朗2024年报【在时代洪流的弄潮中 尽显从容-把脉逆周期调解下大的北京房地产市场】.docx
- 【人教部编版】二年级上册语文课件:4《田家四季歌》第一课时(共27张PPT).pptx
- 年产25万吨合成氨合成工段工艺设计.docx
- 2023徐州市八年级下册期末物理试卷含答案 .pdf
- 毕业设计(论文)-反铲式挖掘机工作装置结构设计.doc
- 工程训练(广东工业大学)智慧树知到期末考试答案章节答案2024年广东工业大学.docx
文档评论(0)