二叉树的遍历

匿名 (未验证) 提交于 2019-12-02 23:26:52

题目描述

编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。

输入描述:

输入包括1行字符串,长度不超过100。

输出描述:

 

可能有多组测试数据,对于每组数据, 输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。 每个输出结果占一行。

示例1

输入

 

abc##de#g##f###

输出

 

c b e g d f a 
#include<bits/stdc++.h> using namespace std; typedef struct node{ 	char c; 	struct node *lchild,*rchild; }TNode,*Tree; string str; int x; void creat(Tree &T) { 	if(str[x]=='#') 	{ 		T=NULL; 		x++; 		return; 	} 	T=(TNode *)malloc(sizeof(TNode)); 	T->c=str[x]; 	x++; 	creat(T->lchild); 	creat(T->rchild); 	return; } void print(Tree T)//输出打印中序遍历的结果 { 	if(T==NULL) 	{ 		return; 	} 	print(T->lchild); 	printf("%c ",T->c); 	print(T->rchild); 	return;  }  int main() { 	getline(cin,str);      x=0;     Tree T;//建立一颗空树      creat(T);     print(T); 	return 0; } /* abc##de#g##f### */

 

转载请标明出处:二叉树的遍历
文章来源: https://blog.csdn.net/amf12345/article/details/88863233
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!