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

📄 main.cpp

📁 清华大学计算机系数据结构课程教材《数据结构 用面向对象方法和C++描述》(殷人昆主编)的类库(书中程序的源代码)
💻 CPP
字号:
#include"BinaryTree.h"
#include<fstream>
using namespace std;

void  visit(BinTreeNode<char> *t){
	cout<<t->data<<"   ";
}

int main(){
	void (* v)(BinTreeNode<char> *) = visit;
/*
	
	ifstream fin("src.txt");
	if (!fin) {
		cerr<<"Can't open!"<<endl;
		while(1)
			cout<<"";
		exit(1);
	}
	fin>>p;
    cout<<"以从文件读入数据建立了二叉树"<<endl;
*/
    BinTreeNode<char> *n0 = new BinTreeNode<char> ('D');
    BinTreeNode<char> *n1 = new BinTreeNode<char> ('E');
    BinTreeNode<char> *n2 = new BinTreeNode<char> ('F');
	BinTreeNode<char> *n3 = new BinTreeNode<char> ('G');
    BinTreeNode<char> *n4 = new BinTreeNode<char> ('H');

	n0->leftChild = n1; n0->rightChild = n2;
	n1->leftChild = n3; n1-> rightChild= NULL;
	n2->leftChild = n4; n2->rightChild = NULL;
	n3->leftChild = n3->rightChild = NULL;
	n4->leftChild = n4->rightChild = NULL;
	BinaryTree<char> p(n0,'@');  
	cout << "二叉树为:" << endl;
	cout << "                      D                              " << endl;
	cout << "                     /  \                             " << endl;
    cout << "                   E     F                           "  << endl;
	cout << "                  /      /                             " << endl;
	cout << "                G      H                             "   <<endl;
	cout  << endl;
	cout<<"后序遍历结果:"<<endl;
	p.PostOrder(v);
	cout<<endl;
	cout<<"中序遍历结果:"<<endl;
	p.InOrder(v);
	cout<<endl;
	cout<<"前序遍历结果:"<<endl;
	p.PreOrder(v);
	cout<<endl;
	cout<<"层次序遍历结果:"<<endl;
	p.levelOrder(v);
	cout<<endl;
	cout<<"树的高度:"<<endl;
	cout<<p.Height()<<endl;
	cout<<"树的大小:"<<endl;
	cout<<p.Size()<<endl;

	cout<<"根结点的数据:"<<endl;
	BinTreeNode<char> *q=p.LeftChild(p.getRoot());
	cout<<p.Parent(q)->data<<endl;

	char t1;
	cout<<"搜索元素:";
	cin>>t1;
	if (p.Find(t1)) cout<<t1<<"在树中"<<endl;

	cout<<"测试完毕"<<endl;

	while(1)//为了在类库说明文档中便于观察,加入这一句
	cout<<"";
	while(1)
		cout<<"";
	return 0;
}

/*
测试示例:

二叉树为:
                      D
                     /  \
                   E     F
                  /      /
                G      H

后序遍历结果:
G   E   H   F   D
中序遍历结果:
G   E   D   H   F
前序遍历结果:
D   E   G   F   H
层次序遍历结果:
D   E   F   G   H
树的高度:
3
树的大小:
5
根结点的数据:
D
搜索元素: F
F在树中
测试完毕

*/

⌨️ 快捷键说明

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