c语言实现二叉树及前中后序遍历
来源:互联网 发布:晋江 百合 知乎 编辑:程序博客网 时间:2024/05/09 10:48
c语言实现二叉树及前中后序遍历(采用递归遍历方式)
#include<stdio.h>#include<stdlib.h>#include<string.h>//定义二叉树节点typedef struct BTNode{char data;struct BTNode *rchild,*lchild;}BTNode,*BTtree;BTtree createBTNode(BTtree ptr, char value, char child){//创建子节点BTtree ptemp = (BTtree)malloc(sizeof(BTNode));if(NULL == ptemp){puts("创建子节点失败!");exit(1);}ptemp->data = value;ptemp->rchild = NULL;ptemp->lchild = NULL;if(child == 'R'){ptr->rchild = ptemp;}else if(child == 'L'){ptr->lchild = ptemp;}return ptemp;}BTtree initBTree(){//首先创建根节点BTtree root = (BTtree)malloc(sizeof(BTNode));if(root == NULL){puts("根节点创建失败");exit(1);}root->data = 'A';root->rchild = NULL;root->lchild = NULL;BTtree pb = createBTNode(root,'B','L');BTtree pc = createBTNode(root,'C','R');BTtree pd = createBTNode(pb,'D','L');BTtree pe = createBTNode(pb,'E','R');BTtree pf = createBTNode(pc,'F','L');BTtree pg = createBTNode(pc,'G','R');return root;}//对二叉树进行先序遍历void preorder(BTtree p){if(p != NULL){printf("%c ",p->data);preorder(p->lchild); //先序遍历左子树preorder(p->rchild);//先序遍历右子树}}void inorder(BTtree p){if(p != NULL){inorder(p->lchild);printf("%c ",p->data);inorder(p->rchild);}}void postorder(BTtree p){if(p != NULL){postorder(p->lchild);postorder(p->rchild);printf("%c ",p->data);}}int main(){BTtree btroot = initBTree();//printf("%c\n",btroot->data);printf("先序遍历:\n");preorder(btroot);printf("\n中序遍历:\n");inorder(btroot);printf("\n后序遍历:\n");postorder(btroot);return 0;}
- 二叉树遍历及C语言实现
- 二叉树遍历及C语言实现
- 二叉树遍历及C语言实现
- 二叉树遍历及C语言实现
- c语言实现二叉树及前中后序遍历
- c语言二叉树创建及遍历
- C语言二叉树及遍历
- C语言实现二叉树的遍历
- c语言遍历二叉树实现
- C语言实现二叉树遍历
- 递归实现二叉树的建立及前中后序遍历 c
- C语言实现二叉树的各种遍历及求解深度
- C语言实现二叉树的各种遍历及求解深度
- c 语言 二叉树遍历
- 二叉树建立及中序遍历C++语言实现
- 排序二叉树及其遍历 c语言实现
- 二叉树遍历的c语言非递归实现
- 二叉树非递归遍历C语言实现
- LightOJ 1138 Trailing Zeroes (III) (阶乘末尾0的个数)
- 字符串排序。
- 软件国际化的若干准则
- 解决google map无法网络定位问题
- C++中重载、重写(也称覆盖)、隐藏
- c语言实现二叉树及前中后序遍历
- ListView应用之模拟新浪微博界面
- HDU4419 Colourful Rectangle(矩形面积并+线段树)
- 基于Sphinx构建准实时更新的分布式通用搜索引擎平台
- VC++: Under the Hood (谈VC++对象模型)
- 产生随机字符串
- java 基础02
- Ubuntu 11.10下Optimus技术实现Nvidia双显卡切换
- android109--FLAG_ACTIVITY_NEW_TASK