原理相信大家都清楚,这里我用C语言实现遍历,代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define TRUE 1
#define FALSE 0
typedef int Status;
typedef char TElemType;

typedef struct BiTNode{
	TElemType data;
	struct BiTNode *lchild,*rchild;
}BiTNode, *BiTree;

Status CreateBiTree(BiTree &T){
	char ch;
	int i=0;
	scanf("%c",&ch);
	if(ch == '#') T = NULL;
	else {
		if(!(T = (BiTree)malloc(sizeof(BiTNode)))) exit(OVERFLOW);
		T->data=ch;
		CreateBiTree(T->lchild);
		CreateBiTree(T->rchild);
	}
	return OK;
}

//中序遍历
Status InOrderTraverse(BiTree T){
	if(T){
		InOrderTraverse(T->lchild);
		printf("%c",T->data);
		InOrderTraverse(T->rchild);
		return OK;
	}else return ERROR;
}

//后序遍历
Status PostOrderTraverse(BiTree T){
	if(T){
		PostOrderTraverse(T->lchild);
		PostOrderTraverse(T->rchild);
		printf("%c",T->data);
		return OK;
	}else return ERROR;
}

void main(int){
	BiTree TL;
	TElemType FL,str[100];
	int i=0,j=0,flag=0;
	printf("请按先序次序输入二叉树的值(#号代表空子树):\n");
	CreateBiTree(TL);
	printf("该二叉树的中序遍历如下:\n");
	InOrderTraverse(TL);
	printf("\n");
	printf("该二叉树的后序遍历如下:\n");
	PostOrderTraverse(TL);
	printf("\n");
}

首先按先序输入二叉树的值:DBA##C##E#GF###,即可得到中序和后序的值

Flag:

温馨提示: 此处内容需要评论本文后刷新才能查看,支付2元即可直接查看所有Flag。

小广告:关于获取西普实验吧所有Flag请点击这里查看索引

查看所有Flag文章需要输入密码,需要获取文章密码的童鞋请扫描下面微信或支付宝二维码捐助至少2元(老哥,捐多捐少是个缘分)之后发送支付凭证号联系我获取,Flag大全地址:Flag大全

新功能:捐款的小伙伴请联系我把自己的注册邮箱加入网站白名单,可以免回复看到本站所有Flag

PS:本站不是实验吧的官方站点,纯粹是个人博客,收取Flag费用仅是维持服务器费用,做站不易,且行窃珍惜!

微信二维码:
支付宝二维码: