- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言实验-树解读
1、验证基于顺序存储的二叉树的基本操作。
#include iostream.h
#define NULL 0
#define MaxSize 100
typedef struct sqtree
{
char data[MaxSize];
int num;
}SqTree;
void InitTree(SqTree *t)
{
t = new SqTree;
t-num = 0;
}
void CreaTree(SqTree *t, char tr[])
{
for (int i = 0; tr[i] != \0; i ++)
{
t-data[i] = tr[i];
t-num ++;
}
}
void DispTree(SqTree *t)
{
for (int i = 0; i t-num; i ++)
{
coutt-data[i];
}
coutendl;
}
void FindTNode(SqTree *t, char x)
{
for (int i = 0; i t-num; i ++)
{
if (x == t-data[i])
{
if (i = t-num/2)
{
cout值为x的结点为叶子结点,其双亲为:;
coutt-data[(i+1)/2]endl;
}
else if (i == 0)
{
cout值为x的结点为根结点endl;
cout值为x的结点的左孩子结点值为:;
coutt-data[2*i+1]endl;
cout值为x的结点的右孩子结点值为:;
coutt-data[2*i+2]endl;
}
else
{
cout值为x的结点的双亲结点值为:;
coutt-data[(i+1)/2]endl;
cout值为x的结点的左孩子结点值为:;
coutt-data[2*i+1]endl;
cout值为x的结点的右孩子结点值为:;
coutt-data[2*i+2]endl;
}
return;
}
}
cout值为x的节点不存在!endl;
}
int main()
{
SqTree *T= NULL;
char a[] = abcdefghijklmn;
char x;
InitTree(T);
CreaTree(T, a);
DispTree(T);
cout请输入要查找的节点:;
cinx;
FindTNode(T, x);
return 0;
}
2、验证基于链式存储的二叉树的基本操作。
3、已知某电文中仅有8个不同的字符,各字符出现的次数依次是3,4,8,10,16,18,20,21,请设计程序,实现对各个字符的哈夫曼编码。
#include iostream.h
#define MaxSize 50
typedef struct
{
char data;
int weight;
int parent;
int lchild;
int rchild;
} HTNode;
typedef struct
{
char cd[MaxSize];
int start;
} HCode;
void CreateHT(HTNode ht[], int n)
{
int i, k, lnode, rnode;
float min1, min2;
for (i = 0; i 2*n-1; i++)
ht[i].parent = ht[i].lchild = ht[i].rchild = -1;
for (i = n; i 2*n-1; i++)
{
min1 = min2 = 32767;
lnode = rnode = -1;
for (k = 0; k i; k++)
{
if (ht[k].parent == -1)
{
if (ht[k].weight min1)
{
min2 = min1;
rnode = lnode;
min1 = ht[k].weight;
lnode = k;
}
else if (ht[k].weight min2)
{
min2 = ht[k].weight;
rnode = k
文档评论(0)