先序创建二叉树及三种遍历
来源:互联网 发布:linux安装mysql报错 编辑:程序博客网 时间:2024/06/05 01:52
#include<stdio.h>#include<stdlib.h>int max = 0;struct node{ int data; struct node *left; struct node *right;};struct node *create(struct node *newNode){//先序创建二叉树 char data; scanf("%c",&data); if(data == '#'){ newNode = NULL; }else{ newNode = (struct node *)malloc(sizeof(struct node)); newNode->data = data; newNode->left = create(newNode->left); newNode->right = create(newNode->right); } return newNode;} void PreOrderTraversal(struct node *tree){//先序遍历 if(tree){ printf("%c",tree->data); PreOrderTraversal(tree->left); PreOrderTraversal(tree->right); }}void InOrderTraversal(struct node *tree){//中序遍历 if(tree){ InOrderTraversal(tree->left); printf("%c",tree->data); InOrderTraversal(tree->right); }}void PostOrderTraversal(struct node *tree){//后序遍历 if(tree){ PostOrderTraversal(tree->left); PostOrderTraversal(tree->right); printf("%c",tree->data); }}void leaf(struct node *tree){//从左到右输出叶子结点 if(tree){ if(tree->left==NULL && tree->right==NULL){ printf("%c",tree->data); } leaf(tree->left); leaf(tree->right); }}void deep(struct node *tree,int step){//树的深度 if(tree){ if(step > max){ max = step; } deep(tree->left,step+1); deep(tree->right,step+1); }} int main(){ struct node *tree = NULL; tree = create(tree); if(tree){ PreOrderTraversal(tree);printf("\n"); InOrderTraversal(tree);printf("\n"); PostOrderTraversal(tree); printf("\n"); leaf(tree); printf("\n"); deep(tree,1); printf("%d",max); }else{ printf("NULL"); } return 0;}
0 0
- 先序创建二叉树及三种遍历
- 二叉树递归的创建及三种遍历(先序、中序、后序)
- 二叉树遍历(包括先序创建二叉树,递归非递归三种遍历)源码
- 二叉树的创建与三种遍历(先序,中序,后序)
- 创建二叉树,并先序遍历
- 二叉树的先序建立及先序遍历:
- 先序遍历和中序遍历创建二叉树
- 先序遍历/后序遍历创建线索二叉树
- 数据结构(二叉树系列)先序创建三种遍历和求深度(递归实现)
- 二叉树的创建(先序创建的)及先序遍历 中序遍历 后序遍历的递归和非递归实现
- 二叉树的创建及递归的先,中,后序遍历
- 二叉树(先序创建,前中后序及按层遍历)
- java实现二叉树的构建以及三种遍历方法(先序遍历,中序遍历,后续遍历)
- 二叉树的先序创建和遍历
- #法(先序遍历)创建二叉树
- 【数据结构】扩充先序遍历创建二叉树
- 二叉树的先序递归创建和遍历
- 二叉树的创建和先序遍历
- voip---linphone 分析
- netty, ByteBuf 转 String
- 任意输入两个数,求其最大公约数和最小公倍数
- apache bench做web压力测试详解
- 51nod 1270 数组的最大代价(基础dp)
- 先序创建二叉树及三种遍历
- 牛顿法(Newton's method)
- JS页面跳转和js对iframe进行页面跳转、刷新
- tensorflow使用tensorboard实现数据可视化
- simplexml_load_string报错:XML declaration allowed only at the start of the document
- min_free_kbytes
- caffe --Multi-GPU Usage
- Android Studio使用USB真机调试
- 微信、QQ、支付宝、微博授权登录的代码操作及相关问题