⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 (7)树的建立和遍历.cpp

📁 一些数据结构算法的例子
💻 CPP
字号:
#include<conio.h>
#include<iostream.h>

struct Node
{
	char Data;
	Node *Left,*Right;
};

Node *Root=NULL;

char LeafCount=0;

void Create(Node *&Tree)
{
	char Char;
	Char=getch();
	cout<<Char;
	if(Char==' ')
		Tree=NULL;
	else
	{
		Tree=new Node;
		if(Root==NULL)
			Root=Tree;
		Tree->Data=Char;
		Create(Tree->Left);
		Create(Tree->Right);
		if((Tree->Left==NULL)&&(Tree->Right==NULL))
			LeafCount++;
	}
}

void PreOrder(Node *Tree)
{
	if(Tree==NULL)
		return;
	cout<<Tree->Data;
	PreOrder(Tree->Left);
	PreOrder(Tree->Right);
}

void PostOrder(Node *Tree)
{
	if(Tree==NULL)
		return;
	PostOrder(Tree->Left);
	PostOrder(Tree->Right);
	cout<<Tree->Data;
}

void InOrder(Node *Tree)
{
	if(Tree==NULL)
		return;
	InOrder(Tree->Left);
	cout<<Tree->Data;
	InOrder(Tree->Right);
}

void Exchange(Node *Tree)
{
	Node *TempNode;
	if(Tree==NULL)
		return;
	Exchange(Tree->Left);
	Exchange(Tree->Right);
	TempNode=Tree->Left;
	Tree->Left=Tree->Right;
	Tree->Right=TempNode;
}

void main()
{
	clrscr();
	Create(Root);
	cout<<endl;
	PreOrder(Root);
	cout<<endl;
	PostOrder(Root);
	cout<<endl;
	InOrder(Root);
	cout<<endl;
	Exchange(Root);
	PreOrder(Root);
	cout<<endl;
	cout<<(int)LeafCount;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -