排序二叉树程序Word文档格式.docx
- 文档编号:20188135
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:16
- 大小:16.40KB
排序二叉树程序Word文档格式.docx
《排序二叉树程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《排序二叉树程序Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
/*※※※※※※※※※出栈函数定义※※※※※※※※※※*/
Trchuzhan()
if(top==t)
top->
next=NULL;
top=top->
next;
/*※※※※※※※※※排序二叉树插入函数定义※※※※※※※※※※*/
TrInsert(intx)
Trp,q;
staticTrhead;
inti=0;
q=(Tr)malloc(sizeof(list));
q->
data=x;
rag=j;
lchild=q->
rchild=q->
prio=NULL;
lflag=q->
rflag=q->
flag=0;
if(t==NULL)
{
t=q;
jinzhan(t);
shuzu[j]=q;
j++;
}
else
p=t;
while(i==0)
if(p->
data>
x)
lchild!
=NULL)
p=p->
lchild;
p->
lchild=q;
prio=p;
i=1;
jinzhan(q);
rchild!
rchild;
rchild=q;
if(j==2)
head=t;
returnhead;
/*※※※※※※※※※排序二叉树函数定义※※※※※※※※※※*/
TrCreatTree()
Tra,head;
intx;
while
(1)
scanf("
%d"
&
x);
if(x!
=-1)
head=Insert(x);
break;
/*※※※※※※※※※排序二叉树结点平衡因子函数定义※※※※※※※※※※*/
voidphyz()
voidjisuan(Trs);
s=top;
while(s!
jisuan(s);
s=chuzhan();
/*※※※※※※※※※平衡因子计算函数定义※※※※※※※※※※*/
voidjisuan(Trs)
if(s)
if(s->
if(top->
s->
lchild->
data)
lflag++;
rflag++;
jisuan(s->
lchild);
rchild->
rchild);
flag=top->
lflag-top->
rflag;
/*※※※※※※※※※排序二叉树输出函数定义※※※※※※※※※※*/
voidprint(Trhead)
FILE*p;
p=fopen("
wendang.txt"
"
a+"
);
if(p==NULL)
printf("
Can'
topenanunexitingtxt\n"
exit(0);
if(head!
print(head->
%3d排号[%2d]平衡因子[%2d]\n"
head->
data,head->
rag,head->
flag);
fprintf(p,"
fclose(p);
/*※※※※※※※※※查找排序二叉树函数定义※※※※※※※※※※*/
voidchazhao(inti)
您要查找的结点是:
%3d平衡因子[%2d]\n"
shuzu[i]->
data,shuzu[i]->
\n\n您要查找的结点是:
if(shuzu[i]->
prio!
此节点的直接前驱是:
%3d\n"
prio->
data);
此节点无直接前驱\n"
此节点的左孩子是:
此节点无左孩子\n"
此节点的右孩子是:
此节点无右孩子\n"
/*※※※※※※※※※查找排序二叉树平衡因子函数定义※※※※※※※※※※*/
voidchaphyz(inti)
%3d平衡因子[%3d]\n"
/*※※※※※※※※※删除排序二叉树函数定义※※※※※※※※※※*/
Trshanchu(inti)
Tra,s;
if(i!
=1)
a=shuzu[i];
if(a->
lchild==NULL&
&
a->
rchild==NULL)
lchild==a)
a->
lchild=NULL;
elseif(a->
rchild==a)
rchild=NULL;
free(a);
lchild=a->
prio=a->
prio;
s=a->
s=s->
rchild=a->
prio=s;
returna->
returnt;
/*※※※※※※※※※重新计算二叉树平衡因子函数定义※※※※※※※※※※*/
voidchongpai(Tra)
if(a!
jinzhan(a);
lflag=a->
rflag=a->
if(a)
chongpai(a->
/*※※※※※※※※※主函数定义※※※※※※※※※※*/
intmain()
Tra;
inti;
※※※※※※※此程序包含排序二叉树的查找,遍历,删除,添加等功能※※※※※※※※\n"
注:
当尝试运用删除操作时,若删除的是根节点,则按后序接尾法,输入的是关键字序列\n\n"
欢迎使用\n\n"
1、排序二叉树查找\n"
2、排序二叉树遍历(中序)\n"
3、排序二叉树删除结点\n"
4、排序二叉树添加结点\n"
5、排序二叉树结点平衡因子\n"
6、退出\n\n"
t=NULL;
j=1;
※※※※※※※※※请输入您要建立的排序二叉树的序列,并以‘-1’结束※※※※※※※\n"
a=CreatTree();
phyz();
lee:
请输入您要进行的操作\n"
i);
if(i==1)
请输入您要查找结点的序号\n"
if(i>
j)
do
您要查找的数排号不在二叉排序树中,请核实重新输入\n"
}while(i>
j);
chazhao(i);
gotolee;
if(i==2)
中序遍历结果\n"
\n中序遍历为\n"
print(a);
if(i==3)
请输入您要删除第几个结点\n"
a=shanchu(i);
chongpai(a);
您删除元素后中序遍历为\n"
\n\n您删除元素后中序遍历为\n"
if(i==4)
请输入您要添加的元素\n"
Insert(i);
您添加元素后中序遍历为\n"
\n\n您添加元素后中序遍历为\n"
}if(i==5)
请输入您要计算的结点平衡因子序号\n"
chaphyz(i);
if(i==6)
****\n"
*★*★*\n"
*★*\n"
>
>
-----*Thanks!
*------>
\n"
*for*\n"
*usage*\n"
**\n"
*\n"
return0;
//测试数据
//1015205103097-1
//532577620483014609841015205-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排序 二叉 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)