先序建立一个二叉树,后续输出(c语言描述)

题目内容: 实现二叉树的后序遍历算法。

输入描述 :二叉树的扩展先序序列。

输出描述 :二叉树的后序序列。

输入样例 : AB#DF##G##C#E#H##

输出样例 :FGDBHECA##

#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
	struct Node* LChild;
	struct Node* RChild;
	char data;
}Tree , *Ptree;

void Creat(Ptree *r)
{
	char ch;
	ch=getchar();
	if(ch!='#')
	{
	(*r)=(Ptree)malloc(sizeof(Tree));
	(*r)->data=ch;
	Creat(&((*r)->LChild));
	Creat(&((*r)->RChild));
	}
	else
	(*r)=NULL;
	
}
void postOrder(Ptree p)
{
	if(p!=NULL)
	{
		postOrder(p->LChild);
		postOrder(p->RChild);
		printf("%c",p->data);
	}
}
int main()
{
	Ptree tree;
	Creat(&tree);
	postOrder(tree);
	return 0;
}
发布了29 篇原创文章 · 获赞 12 · 访问量 6898

猜你喜欢

转载自blog.csdn.net/Zheng_lan/article/details/93165601