二叉树生成与递归遍历
来源:互联网 发布:淘宝店修改运费模板 编辑:程序博客网 时间:2024/05/24 15:41
前序递归生成,前中后序遍历
#include<cstdio>#include<cstdlib> #include<string>#include<iostream>#include<cstdio>using namespace std;struct tree{ int a; tree *right; tree *left;} ; //前序遍历生成二叉树tree *start_preorder(){ int c; tree *b; scanf("%d", &c); if (c== 10) { b = NULL; return NULL; } else { b = (tree*)malloc(sizeof(tree)); b->a = c;//数据写入 b->left=start_preorder();//加上左子树的节点个数,以及访问左子树节点数据 b->right=start_preorder();//加上右子树节点个数,以及访问右子树节点数据 return b;//返回当前根作为一棵树的节点数 }}//前序遍历打印二叉树int print_preorder(tree *root){ if (root == NULL) return 0; int k = 1;//k为当前根作为一棵树的节点数==1+左子树节点数+右子树节点个数 printf("%d", root->a);//访问数据 k+=print_preorder(root->left);//加上左子树的节点个数,以及访问左子树节点数据 k+=print_preorder(root->right);//加上右子树节点个数,以及访问右子树节点数据 return k;//返回当前根作为一棵树的节点数}//中序遍历打印二叉树int print_inorder(tree *root){ if (root == NULL) return 0; int k = 1;//k为当前根作为一棵树的节点数==1+左子树节点数+右子树节点个数 k += print_inorder(root->left); printf("%d", root->a); k += print_inorder(root->right); return k;//返回当前根作为一棵树的节点数}//后序遍历打印二叉树int print_postorder(tree *root){ if (root == NULL) return 0; int k = 1;//k为当前根作为一棵树的节点数==1+左子树节点数+右子树节点个数 k += print_postorder(root->left); k += print_postorder(root->right); printf("%d", root->a); return k;//返回当前根作为一棵树的节点数}int main(){ tree a; a=*start_inorder(); print_preorder(&a); printf("\n"); print_inorder(&a); printf("\n"); print_postorder(&a); return 0;}
阅读全文
0 0
- 二叉树生成与递归遍历
- 生成二叉树 非递归,递归遍历二叉树
- 二叉树 递归 与 非递归 遍历
- 递归与非递归二叉树遍历
- 二叉树递归与非递归遍历
- 二叉树递归与非递归遍历
- 二叉树递归与非递归遍历
- 二叉树递归与非递归遍历
- 二叉树递归与非递归遍历
- 遍历二叉树(递归与非递归)
- 二叉树的生成和递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉查找树递归遍历与非递归遍历
- 二叉树的递归遍历与非递归遍历
- 二叉树递归遍历与非递归遍历
- 二叉树递归遍历与非递归遍历(终极版)
- 二叉树的递归遍历与非递归遍历
- Linux vim 替换命令
- 服务网关 Spring Cloud Zuul
- Java项目之星际争霸1简单仿制(一)项目概述及展示
- 递归实现加法
- BigDecimal学习
- 二叉树生成与递归遍历
- 数据结构之选择排序(java)
- unity编辑器扩展篇-图集拆分
- TensorFlow部分API
- 阿里云推出区域经济大脑 | 苹果发布机器学习框架Turi Create | 工业超市震坤行完成2亿元B+轮融资
- 第十一周项目3
- 计算机视觉+AR,构建无处不在的空间互联网入口
- kafka单机测试环境搭建
- spring 4.2.5-RELEASE版本postman模拟没有问题,web请求出错