#法(先序遍历)创建二叉树
来源:互联网 发布:龙宫礼奈 知乎 编辑:程序博客网 时间:2024/06/05 21:04
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct BiTNode{char data;struct BiTNode *lchild, *rchild;}BiTNode;void inOrder1(BiTNode *T)//前序遍历{if (T == NULL){return;}printf("%c ", T->data);inOrder1(T->lchild);inOrder1(T->rchild);}void inOrder2(BiTNode *T)//中序遍历{if (T == NULL){return;}inOrder2(T->lchild); printf("%c ", T->data);inOrder2(T->rchild);}void inOrder3(BiTNode *T)//后序遍历{if (T == NULL){return;}inOrder3(T->lchild);inOrder3(T->rchild);printf("%c ", T->data);}/*#法创建二叉树原理:在二叉树中没有数据的节点用#填充,以确保二叉树是非#节点都有两个子节点*/BiTNode * CreateBiThrTree()//#法创建二叉树,递归思路{BiTNode *node = NULL;BiTNode *pL = NULL;BiTNode *pR = NULL;char ch;scanf("%c", &ch);if (ch == '#')//递归结束条件 碰到#则返回{return NULL;}else{node = (BiTNode *)malloc(sizeof(BiTNode));//创建节点memset(node, 0, sizeof(BiTNode));node->data = ch;pL = CreateBiThrTree();//创建左节点if (pL != NULL){node->lchild = pL;}else{node->lchild = NULL;}pR = CreateBiThrTree();//创建右节点if (pR != NULL){node->rchild = pR;}else{node->rchild = NULL;}}return node;}void main(){BiTNode *tmp = NULL;tmp = CreateBiThrTree();inOrder1(tmp);printf("\n");inOrder2(tmp);printf("\n");inOrder3(tmp);printf("\n");system("pause");}
0 0
- #法(先序遍历)创建二叉树
- 创建二叉树,并先序遍历
- 先序遍历和中序遍历创建二叉树
- 先序遍历/后序遍历创建线索二叉树
- 创建一个二叉树(先序遍历、中序遍历、后序遍历)
- 二叉树(先序创建,递归先序,中序,后序遍历)-----1
- 二叉树(先序创建,非递归先序,中序遍历)-----2
- 二叉树的操作(二叉树的创建、先序遍历--->先根、中序遍历---->先左、后续遍历--->后根)
- 利用先序遍历创建二叉树的后序遍历序列(0979)
- 二叉树的先序创建和遍历
- 【数据结构】扩充先序遍历创建二叉树
- 先序创建二叉树及三种遍历
- 二叉树的先序递归创建和遍历
- 二叉树的创建和先序遍历
- 先根遍历创建二叉树
- 先序遍历二叉树
- 先序遍历二叉树
- 二叉树 - 先序遍历
- idea 注册码获取
- webview中截取超链接地址,跳转或其他操作
- job爬虫
- ArrayList线程不安全性验证及解决方法
- HTTP
- #法(先序遍历)创建二叉树
- iOS 随意设定 子控制器view的位置
- 工程师的爱情故事之1:大发明家
- 如何设置tableView的组的头视图的高度?为什么你设置的tableView的组的头视图的高度无效呢?
- 移动端界面设计之尺寸篇
- Spring概述
- log4j配置
- iOS开发-自动布局篇:史上最牛的自动布局教学!
- POJ 3080 Blue Jeans 串的暴力