九度題目1184:二叉樹遍歷

http://ac.jobdu.com/problem.php?pid=1184

2002年華中科技大學計算機研究生機試真題

ABC##DE#G##F###

先序建樹:a ,左孩子b。

                  b,左孩子c,

                  c,左孩子空,右孩子空,退回b

                  b,右孩子d

                 .....

#include <stdio.h>
#include <malloc.h>
#include <string.h>

struct Node
{
	Node *left,*right;
	char c;
};

int i;
char str[1000];

Node *build(char str[])
{
	Node *T;
		if (str[i++]=='#')
		{
			T=NULL;
		}
		else
		{
			T=(Node*)malloc(sizeof(Node));
			T->c=str[i-1];
			T->left=build(str);
			T->right=build(str);
		}
	return T;
}
void inOrder(Node* T)
{
   if (T->left)
   {
	   inOrder(T->left);
   }
   printf("%c ",T->c);
   if (T->right)
   {
	   inOrder(T->right);
   }
}
int main()
{
	freopen("D:\\1.txt","r",stdin);
	int j;
	Node *T=NULL;
	memset(str,0,sizeof(str));
	while (scanf("%s",str)!=EOF)
	{
		i=0;
		T=build(str);
		inOrder(T);
		memset(str,0,sizeof(str));
		printf("\n");
	}
	return 0;
}


發佈了103 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章