数据结构二叉树子系统设计文档格式.docx

上传人:b****4 文档编号:14327836 上传时间:2022-10-22 格式:DOCX 页数:14 大小:16.40KB
下载 相关 举报
数据结构二叉树子系统设计文档格式.docx_第1页
第1页 / 共14页
数据结构二叉树子系统设计文档格式.docx_第2页
第2页 / 共14页
数据结构二叉树子系统设计文档格式.docx_第3页
第3页 / 共14页
数据结构二叉树子系统设计文档格式.docx_第4页
第4页 / 共14页
数据结构二叉树子系统设计文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数据结构二叉树子系统设计文档格式.docx

《数据结构二叉树子系统设计文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构二叉树子系统设计文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

数据结构二叉树子系统设计文档格式.docx

#include<

stdio.h>

stdlib.h>

typedefstructbTree//二叉树结点

{

chardata;

//值域

structbTree*lchild;

//左孩子

structbTree*rchild;

//右孩子

}BT;

BT*createTree();

voidshowTree(BT*t);

voidpreOrder(BT*t);

voidpostOrder(BT*t);

voidinOrder(BT*t);

voidlevelOrder(BT*t);

intleafNum(BT*t);

intnodeNum(BT*t);

inttreeDepth(BT*t);

/*************************************************

Function:

main()

Description:

主调函数

Calls:

createTree()

showTree()

preOrder()

postOrder()

inOrder()

leafNum()

levelOrder()

nodeNum()

treeDepth()

Input:

NULL

Return:

void

Others:

*************************************************/

voidmain()

BT*t=NULL;

intchoice,k=1;

while(k)

{

printf("

\n二叉树子系统\n"

);

*******************************\n"

*1------建二叉树*\n"

*2------凹入显示*\n"

*3------先序遍历*\n"

*4------中序遍历*\n"

*5------后序遍历*\n"

*6------层次遍历*\n"

*7------求叶子数*\n"

*8------求结点数*\n"

*9------求树深度*\n"

*0------返回*\n"

请选择菜单号(0--9):

"

fflush(stdin);

scanf("

%d"

&

choice);

switch(choice)

case1:

请输入根结点('

0'

表示该结点为空):

t=createTree();

二叉树建立成功。

\n"

break;

case2:

showTree(t);

case3:

先序遍历序列:

if(t==NULL)

空。

}

else

preOrder(t);

case4:

中序遍历序列:

inOrder(t);

case5:

后序遍历序列:

postOrder(t);

case6:

层次遍历序列:

levelOrder(t);

case7:

该二叉树的叶子数:

0。

%d。

leafNum(t));

case8:

该二叉树的结点数为:

nodeNum(t));

case9:

该二叉树的深度为:

treeDepth(t));

case0:

k=0;

default:

k=1;

}

建立二叉树

BT*

BT*createTree()//建立二叉树

BT*t;

charx;

getchar();

%c"

x);

//获取输入的结点值

if(x=='

)//输入的值为零,结点为空

t=NULL;

t=(BT*)malloc(sizeof(BT));

t->

data=x;

//赋值

请输入结点%c的左孩子:

t->

data);

lchild=createTree();

//递归建立左孩子

请输入结点%c的右孩子:

rchild=createTree();

//递归调用

returnt;

凹入显示二叉树

t:

结点指针

voidshowTree(BT*t)//显示二叉树

BT*sta[100],*p;

intlev[100][2];

//第一个空存要空的长度,第二空存左右孩子的标示

inttp,n,i,wid=4;

if(t!

=NULL)//结点非空

凹入表示法:

tp=1;

sta[tp]=t;

//将各个结点的指针放在指针数组中

lev[tp][0]=wid;

//显示的前面的空白长度

while(tp>

0)

p=sta[tp];

n=lev[tp][0];

//显示

for(i=0;

i<

n;

i++)

"

p->

for(i=n+1;

i<

30;

i+=2)

▄"

tp--;

//记录左右孩子

if(p->

lchild!

=NULL)

tp++;

sta[tp]=p->

lchild;

lev[tp][0]=n+wid;

lev[tp][1]=1;

rchild!

rchild;

lev[tp][1]=2;

先序遍历

voidpreOrder(BT*t)//先序遍历

if(t)//结点不为空

%3c"

preOrder(t->

lchild);

rchild);

后序遍历

voidpostOrder(BT*t)//后序遍历

postOrder(t->

中序遍历

inOrd

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1