二叉树的先序、中序、后序以及层次遍历
来源:互联网 发布:笑声音效软件 编辑:程序博客网 时间:2024/06/08 16:11
图为创建一个简单的二叉树,你们也可以创建一些复杂的!
好了,直接上代码!
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<malloc.h>#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int Status;typedef struct BiTNode{char data;struct BiTNode *lchild;struct BiTNode *rchild;}BiTNode,*BiTree;Status CreateBiTree(BiTree &T){//创建树char ch;scanf("%c",&ch);if(ch=='#')T=NULL;else{ if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))exit(0);T->data=ch;CreateBiTree(T->lchild);CreateBiTree(T->rchild);}return 1;}Status Visit(BiTree T){if(T){printf("%c",T->data);return 1;}return 0;}Status PreOrderTraverseFirst(BiTree T){//先序遍历if(T){Visit(T);PreOrderTraverseFirst(T->lchild);PreOrderTraverseFirst(T->rchild);return 1;}return 0;}Status PreOrderTraverseSecond(BiTree T){//中序遍历if(T){PreOrderTraverseSecond(T->lchild);Visit(T);PreOrderTraverseSecond(T->rchild);return 1;}return 0;}Status PreOrderTraverseThree(BiTree T){//后序遍历if(T){PreOrderTraverseThree(T->lchild);PreOrderTraverseThree(T->rchild);Visit(T);return 1;}return 0;}void LevelOrder(BiTNode *b){BiTNode *p;BiTNode *qu[10];//定义循环队列,存放节点指针int front,rear;front=rear=0;//置队列为空队列rear++;qu[rear]=b;//根节点指针进队while(front!=rear){//队列不为空front=(front+1)%10;//队头出队p=qu[front];//printf("%c",p->data);//访问节点if(p->lchild!=NULL){//有左孩子时将其进队rear=(rear+1)%10;qu[rear]=p->lchild;}if(p->rchild!=NULL){//有右孩子时将其进队rear=(rear+1)%10;qu[rear]=p->rchild;}}}void menu(){printf("\n\t\t\t1.创建树");printf("\n\t\t\t0.退出");printf("\n\t\t请选择:");}int main(){BiTree T;char e;int n;while (1){menu();scanf("%d",&n);switch(n) {case 1:printf("\n\t\t\t创建树\n\t\t\t"); getchar(); CreateBiTree(T);printf("\n\t\t\t先序遍历 :"); PreOrderTraverseFirst(T); printf("\n\t\t\t中序遍历:"); PreOrderTraverseSecond(T); printf("\n\t\t\t后续遍历 :"); PreOrderTraverseThree(T); printf("\n\t\t\t层次遍历:"); LevelOrder(T);break;case 0:exit(1);break;default:printf("\n操作有误!!!");break;}printf("\n\n\n");}return 0;}
0 0
- 二叉树的先序、中序、后序以及层次遍历
- 二叉树的先序遍历,后序遍历,中序遍历,层次遍历
- 二叉树 的先序 中序、后序遍历、层次遍历以及树状打印等操作
- 先序,中序,后序,层次遍历二叉树
- 二叉树建立以及先序、中序、后序、层次遍历(JAVA 实现)
- 二叉树中结构体的应用,以及先序,中序,后序,层次遍历的输出
- 二叉树的先序、中序、后序的递归及非递归实现,以及层次遍历的实现:
- 二叉树的先、中、后序遍历及层次遍历的迭代版算法
- 实现二叉树的先序遍历、中序遍历、后序遍历的递归非递归算法以及层次遍历算法
- 二叉树 非递归 先序遍历 中序遍历 后序遍历 层次遍历
- 二叉树-建树,层次遍历,先序遍历,中序遍历,后序遍历
- 二叉树的先序遍历、中序遍历、后序遍历、层次遍历的递归实现
- JAVA版二叉树的先序、中序、后序和层次遍历
- 数据结构之 二叉树的构造与遍历(先序,中序,后序,层次)
- 二叉树的先序/中序/后序/层次遍历
- 二叉树的非递归遍历以及层次遍历(前序、中序、后序)
- 数据结构--java实现二叉树的先序、中序、后序、层次遍历及根据先序中序建立二叉树
- 二叉树高度,栈实现二叉树的先序,中序,后序遍历的非递归遍历,二叉树层次遍历
- Java的内存回收
- shell注意点(一)
- 读《格蠹汇编》第一章并实验
- 打印所有不超过n(n<256)的其平方具有对称性的数(也称回文数)
- 在夕阳再晨的日子里(一)----部员的成长
- 二叉树的先序、中序、后序以及层次遍历
- 《机器学习 实用案例解析》读书笔记0
- 01_06.padding属性
- 无插件定制web vim开发环境基本版
- $(document).ready() 与window.onload的区别
- 实战Linux Bluetooth编程(四) L2CAP层编程
- ios推送通知设置
- c++注册表编辑
- perl学习--文件copy