C语言实现二叉树的创建以及遍历(递归)
来源:互联网 发布:java throw try catch 编辑:程序博客网 时间:2024/06/06 20:51
C语言实现二叉树的创建以及遍历
#include <stdio.h>typedef char ElemType;typedef struct BiTNode{ ElemType data; struct BiTNode *lchild; struct BiTNode *rchild;} BiTNode,*BiTree;//先序建立二叉树方法一void CreateBiTreeMethod1(BiTree *T);//先序建立二叉树方法二BiTree CreateBiTreeMethod2();//先序遍历二叉树void PreOrderTraverse(BiTree T);//中序遍历void InOrderTraverse(BiTree T);//后序遍历void PostOrderTraverse(BiTree T);int main(){ BiTree T = NULL; //CreateBiTreeMethod1(&T); //PreOrderTraverse(T); T = CreateBiTreeMethod2(); PreOrderTraverse(T); return 0;}//先序建立二叉树方法一void CreateBiTreeMethod1(BiTree *T){ char ch; scanf("%c",&ch); if('#' == ch){ *T = NULL; }else{ *T = (BiTree)malloc(sizeof(BiTNode)); (*T)->data = ch; CreateBiTreeMethod1(&((*T)->lchild)); CreateBiTreeMethod1(&((*T)->rchild)); }}//先序建立二叉树方法二BiTree CreateBiTreeMethod2(){ char ch; scanf("%c",&ch); BiTree T; if('#' == ch){ T = NULL; }else{ T = (BiTree)malloc(sizeof(BiTNode)); T->data = ch; T->lchild = CreateBiTreeMethod2(); T->rchild = CreateBiTreeMethod2(); } return T;}//先序遍历二叉树void PreOrderTraverse(BiTree T){ if(T) { printf("%c",T->data); PreOrderTraverse(T->lchild); PreOrderTraverse(T->rchild); }}//中序遍历void InOrderTraverse(BiTree T){ if(T) { PreOrderTraverse(T->lchild); printf("%c",T->data); PreOrderTraverse(T->rchild); }}//后序遍历void PostOrderTraverse(BiTree T){ if(T) { PreOrderTraverse(T->lchild); PreOrderTraverse(T->rchild); printf("%c",T->data); }}
0 0
- C语言实现二叉树的创建以及遍历(递归)
- 二叉树的创建、前序中序后序递归遍历与非递归遍历、层序遍历以及二叉树简单应用的C语言实现
- 遍历二叉树的递归算法与非递归算法以及C语言实现
- <数据结构>二叉树的递归、非递归以及层次遍历算法C语言实现
- 二叉树(一):二叉树的创建以及三种遍历方法的递归实现
- 二叉树的创建,递归遍历以及非递归遍历
- 二叉树遍历的c语言非递归实现
- 二叉树的非递归遍历C语言实现
- 【算法】二叉树的递归遍历C语言实现
- 二叉树遍历的递归和非递归实现(C语言)
- 二叉树的创建遍历 递归实现
- C语言实现二叉树的递归遍历与非递归遍历
- C语言实现二叉树的递归遍历和非递归遍历
- C语言实现二叉树的递归遍历与非递归遍历
- 二叉树的创建与遍历(C语言实现)
- 二叉树的创建,以及递归前中后序以及层次遍历
- 二叉树的遍历(c语言非递归算法)
- C语言实现二叉树的常用的算法(递归与非递归实现遍历)
- 关于阿里的笔试题for循环中嵌套setTimeout
- Linux下高并发socket最大连接数所受的限制问题
- react 最近很火,翻出一篇旧文,和大家分享一下。
- c/c++创建动态链接库
- 使用Python进行稳定可靠的文件操作详解
- C语言实现二叉树的创建以及遍历(递归)
- java远程通讯技术及简单实现
- 自定义HttpModule实现某些功能的例子
- 关于 Android 进程保活,你所需要知道的一切
- Windows机制下的游戏编程实例一
- HashMap多线程并发问题分析
- shell 备份本地文件目录到远程机器
- iOS 高效添加圆角效果实战讲解
- spin_lock与内核抢占