二叉树——创建,递归遍历输出
来源:互联网 发布:陈霸先 知乎 编辑:程序博客网 时间:2024/06/16 04:22
二叉树原形:
因为要知道叶子结点(来结束子树),所以需要确定叶子结点的孩子,把叶子结点的孩子记为#
补充成完全二叉树(完全二叉树):
输入的时候,因为程序中是先序方法创建二叉树(当然也可以中序和后序),所以输入要按先序方法输入:ab#c##d#e##
二叉树先序,中序,后序遍历输出程序如下
#include <stdio.h>#include <malloc.h>typedef char TElemType;typedef struct BiTNode{ TElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;//创建二叉树BiTree CreatBiTree(BiTree T){ char x; scanf("%c",&x); if(x=='#') { T=NULL; } else { T=(BiTree)malloc(sizeof(BiTNode));//根结点 if(!T) { printf("error"); } T->data=x; T->lchild=CreatBiTree(T->lchild); T->rchild=CreatBiTree(T->rchild); } return T;}//先序void PreOrder(BiTree T){ //根左右 if(T) { printf("%c ",T->data); PreOrder(T->lchild); PreOrder(T->rchild); }}//中序void InOrder(BiTree T){ //左根右 if(T) { PreOrder(T->lchild); printf("%c ",T->data); PreOrder(T->rchild); }}//后序void LastOrder(BiTree T){ //左右根 if(T) { PreOrder(T->lchild); PreOrder(T->rchild); printf("%c ",T->data); }}int main(){ BiTree T=NULL; int ch; T=CreatBiTree(T); while(1) { printf("1_PreOrder\n"); printf("2_InOrder\n"); printf("3_LastOrder\n"); printf("4_exit\n"); scanf("%d",&ch); switch(ch) { case 1:printf("PreOrder is:");PreOrder(T);break; case 2:printf("InOrder is:");InOrder(T);break; case 3:printf("LastOrder is:");LastOrder(T);break; case 4:return; default:printf("input error!"); } printf("\n"); } return 0;}
阅读全文
0 0
- 二叉树——创建,递归遍历输出
- 二叉树递归创建遍历
- 数据结构—二叉树的创建 遍历 输出
- 二叉树递归创建和递归遍历
- 遍历二叉树——递归遍历
- 二叉树的创建,递归遍历,非递归遍历
- 二叉树的创建,递归遍历以及非递归遍历
- 二叉树的创建与遍历(递归)
- 二叉树的递归创建&遍历
- 二叉树的创建与其递归遍历
- 二叉树的创建与递归遍历
- 二叉树的创建遍历 递归实现
- 二叉树的递归创建和遍历
- 二叉树的创建和递归遍历
- 二叉树的创建|非递归遍历
- 二叉树的创建和递归遍历
- 遍历二叉树——递归实现
- 二叉树(二)——递归遍历
- 假设二叉树采用链接方式存储,编写一个计算一颗二叉树t的高度的函数
- Java去重合并List
- 求第n个斐波那契数,用迭代和递归两种方法。
- FCC中ajax部分的天气预报
- Hadoop&Spark搭建
- 二叉树——创建,递归遍历输出
- jQuery实现的list列表
- 创建登录界面
- 获取文件信息
- C++类的大小——sizeof(class)
- QTWebkit中的webkit/qt/api文档
- POJ1067 取石子游戏(威佐夫博弈)
- 【算法分析与设计】【第九周】91. Decode Ways
- DVWA漏洞测试之SQL注入