資源簡介
樹的基本運算:創(chuàng)建樹;輸出樹(凹入顯示);遍歷樹(先序、中序、后序、層次);求二叉樹的深度;求葉子數(shù);求結(jié)點數(shù)。
代碼片段和文件信息
#include
#include
int?LeafCount=0;
int?sum?=0;
typedef?struct?Node{
char?data;
struct?Node?*Lchild;//左孩子?
struct?Node?*Rchild;//右孩子?
struct?Node?*Parent;//父親?
}BiTNode*BiTree;
void?CreateBiTee(BiTree?*?bt){//創(chuàng)建二叉鏈表;?
char?ch;
ch=getchar();
if(ch==‘.‘)
*bt=NULL;
else
{
*bt=(BiTree)malloc(sizeof(BiTNode));
(*bt)->data=ch;
CreateBiTee(&((*bt))->Lchild);
CreateBiTee(&((*bt))->Rchild);
}
}
void?PreOrder(BiTree?root)//先序遍歷輸出二叉樹中的節(jié)點?
{
if(root!=NULL){
printf(“%c“root->data); //輸出節(jié)點;?
PreOrder(root->Lchild);
PreOrder(root->Rchild);?
}
}
void?InOrder(BiTree?root){//中序遍歷輸出二叉樹的節(jié)點?
if(root!=NULL){
InOrder(root->Lchild);
printf(“%c“root->data);
InOrder(root->Rchild);?
}
}?
void?PostOrder(BiTree?root){//后序遍歷輸出二叉樹的節(jié)點?
if(root!=NULL){
PostOrder(root->Lchild);
PostOrder(root->Rchild);
printf(“%c“root->data);?
}
}
void?leaf(BiTree?root){//后續(xù)遍歷統(tǒng)計葉子結(jié)點數(shù)目;?
if(root!=NULL){
leaf(root->Lchild);
leaf(ro
評論
共有 條評論