按先序遍历输出叶子结点的程序(可以用C++运行的C语言程序)

按先序遍历输出叶子结点的程序(可以用C++运行的C语言程序),第1张

#include<stdlib.h>

#include<stdio.h>

typedef struct bitnode{

int date

struct bitnode * lchild, *rchild

}bitnode,*bitree

int j=0

//   函数说明

bitree *createbitree(bitree *T)

int Qtraversebitree(bitree T)

int Ztraversebitree(bitree T)

int Htraversebitree(bitree T)

int Ftraversebitree(bitree T)

/*******************主函数****************************/

main()

{

bitree Tree,*T  int k

     do                                 

{

printf("\n        ╔-----------------------------------------------╗")                                  //显示一个简易菜单

printf("\n        ┆      先序创建----1     先序遍历------2        ┆")

printf("\n        ┆      中序遍历----3     后序遍历------4        ┆")

printf("\n        ┆      叶子个数--- 5     退出程序------6        ┆")

printf("\n        ╚-----------------------------------------------╝\n") 

printf("请输入所要进行的 *** 作序号:  ")

scanf("%d",&k)                                   //接受用户的选择

switch(k)                                           //接受用户的函数    

{case 1: printf("左右子树为空时用0代替,用间隔符隔开:\n")

       T=createbitree(&Tree)

       break

 case 2:Qtraversebitree(*T )

    break

     case 3:Ztraversebitree(*T )

        break

 case 4:Htraversebitree(*T )

        break

 case 5:printf("\n叶子个数为: %d\n",Ftraversebitree(*T ))

    break

 case 6:break

default:printf("错误选择!请重选\n")break

}

}while(k!=6)    //直到i被赋值为6

return 0  

}

/*******************创建二叉树函数****************************/

bitree *createbitree(bitree *T)

{

char ch

scanf("%d",&ch)

if(ch==0) 

(*T)=NULL

else{ 

if(!((*T) =(bitnode *)malloc(sizeof(bitnode))))

exit(0)

(*T)->date = ch  //生成根节点 

createbitree(&(*T)->lchild)

createbitree(&(*T)->rchild)

}

  return T

}

/*******************先序遍历函数****************************/

Qtraversebitree(bitree T)

{                                         

if(T){printf("%d ",T->date)

     if(Qtraversebitree(T->lchild))

     if(Qtraversebitree(T->rchild)) return 1

return 0

}

else return 1

}

/*******************中序遍历函数****************************/ 

Ztraversebitree(bitree T)

{                                         

if(T){if(Ztraversebitree(T->lchild))

 printf("%d ",T->date)

        if(Ztraversebitree(T->rchild)) return 1

return 0

}

else return 1

}

/*******************后序遍历函数****************************/

Htraversebitree(bitree T)

{                                         

if(T){if(Htraversebitree(T->lchild))

if(Htraversebitree(T->rchild)) 

printf("%d ",T->date) return 1

return 0

}

else return 1

}

/******************返回叶子节点个数函数*************/

Ftraversebitree(bitree T)

{                                      

if(T){if(!((T->lchild)||(T->rchild))) j++ 

     if(Ftraversebitree(T->lchild))

     if(Ftraversebitree(T->rchild)) return j

return j

}

else return j

}

绿色叶子的软件是《Snapseed》。

《Snapseed》免费提供,其新功能包括:新增“怀旧”滤镜、更新“相框”滤镜以及集成Google+。Snapseed是您日常处理相片的最佳应用程序。通过该应用程序,您指尖轻触即可轻松愉快地对相片加以美化。通过这款一流的数码相片处理软件,任何人均可轻松美化、转换和分享其相片。凭借Snapseed内置的Google+功能,您能够更方便地与亲朋好友分享相片。

Snapseed的特点:

1、轻轻一点“自动校正”即可自动调整您的相片。

2、使用“调整图像”将您的相片调整至尽善尽美。

3、使用“选择性调整”对相片的特定对象或区域加以美化。

4、提供各种有趣且极具新意的滤镜,例如“怀旧”、“戏剧”、“复古”、“杂质”以及“移轴”。

5、提供许多优质相框,可为美化相片起到画龙点睛的效果。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11198164.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存