📄 main.cpp
字号:
#include <iostream>
using namespace std;
#include "ThreadTree.h"
#include "ThreadTree.cpp"
#define eptmark '@'
template<class T>
void visit(ThreadNode<T> *p) {
cout << p -> data << ' ';
}
int main()
{
ThreadTree<char> tmp;
cout << "输入一个序列建立二叉树(如A " << endl;
cout<<" A B l" << endl;
cout<<" A C r" << endl;
cout<<" B D l" << endl;
cout<<" B E r" << endl;
cout<<" C F l" << endl;
cout<<" 0 0 @" << endl;
cout<<" ), 要结束输入 0 0 @" << endl;
tmp.InitThreadTree();
cout << endl;
cout << "建立线索:" << endl;
tmp.createInThread();
cout << "前序遍历:" << endl;
tmp.PreOrder(visit);
cout << endl;
cout<<endl;
cout << "后序遍历: "<< endl;
tmp.PostOrder(visit);
cout << endl;
cout << endl;
cout << "中序遍历: " << endl;
tmp.InOrder(visit);
cout << endl;
cout << endl;
cout << "搜索元素:" << endl;
char ch;
cin >> ch;
tmp.Find(ch);
cout << "搜索线索化后的第一个结点:" << endl;
cout << tmp.First(tmp.getCurrent())->data << endl;
cout << "搜索线索化后的最后一个结点:" << endl;
cout << tmp.Last(tmp.getCurrent())->data << endl;
cout << "搜索线索化后的当前结点的下一个结点:" << endl;
cout << tmp.Next(tmp.getCurrent())->data << endl;
cout<<"测试完毕"<<endl;
while(1)//为了在类库说明文档中便于观察,加入这一句
cout<<"";
return 0;
}
/*
输入示例:
输入一个序列建立二叉树(如A
A B l
A C r
B D l
B E r
C F l
0 0 @
),要结束输入 0 0 @
输入根结点:
1
输入成功
输入结点关系,如 (Parent) (leftChild) l 或 (Parent) (rightChild) r
1 2 l
输入成功
2 3 l
输入成功
2 4 r
输入成功
0 0 @
生成的树为:
1
2
3
4
建立线索:
前序遍历:
1 2 3 4
后序遍历:
3 4 2 1
中序遍历:
3 2 4 1
搜索元素:
2
搜索线索化后的第一个结点:
3
搜索线索化后的最后一个结点:
4
搜索线索化后的当前结点的下一个结点:
4
测试完毕
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -