阅读背景:

二叉树先序创建和二叉树先序遍历、中序遍历和后序遍历

来源:互联网 
 
 
#include<iostream>
#include<cstdlib>
using namespace std;

struct Btree
{
	char c;
	Btree *left;
	Btree *right;
	Btree(){}
	Btree(char value)
		:c(value), left(nullptr), right(nullptr)
	{

	}

};

Btree *btree;
int number;
Btree * CreateBtree(char *a, int num)
{
	Btree *T;
	
	if (number >=num)
	{
		return (NULL);
	}
	if (a[number] == '0')
	{
		number++;
		return (NULL);
	}
	T = new Btree();
	T->c = a[number];
	number++;
	T->left = CreateBtree(a,num);
	T->right = CreateBtree(a,num);
	return T;

}
void PreOrder(Btree *T)
{
	if (T)
	{
		cout << T->c<<" ";
		PreOrder(T->left);
		PreOrder(T->right);
	}		

}
void InOrder(Btree *T)
{
	if (T)
	{
		
		PreOrder(T->left);
		cout << T->c << " ";
		PreOrder(T->right);
	}

}
void PostOrder(Btree *T)
{
	if (T)
	{

		PreOrder(T->left);
		PreOrder(T->right);
		cout << T->c << " ";
	}

}

int main()
{
	char a[100];
	int num;//字符串的个数
	cin >> num;
	for (int i = 0; i < num; i++)
	{
		cin >> a[i];
	}
	//输入建立二叉树所用的字符串
	number = 0;
	
	btree=CreateBtree(a,num);
	PreOrder(btree);
	cout << endl;
	InOrder(btree);
	cout << endl;
	PostOrder(btree);


	system("pause");
	return 0;
}


#include<iostream>
#include<cstdlib>
using n



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: