#include <iostream> #include <stack> #include <deque> using namespace std; //创建树结构 typedef struct node { int data; struct node *ltree,*rtree; }*BitTree,bitTree; //创建树函数 void creat_tree(BitTree &tree); void PrintFromTopToBottom(BitTree &pNode); int main() { BitTree pTree; BitTree bsTree=NULL; cout<<"please input data of the tree:"<<endl; creat_tree(pTree); MirrorRecursively(pTree); //输出节点信息 while (bsTree) { cout<<bstree->data<<" "; bsTree=bsTree->ltree; } system("pause"); return 0; } void creat_tree(BitTree &tree) { int data; cin>>data; //退出条件 if (data==0) { tree=NULL; return; } else { tree=new bitTree; if (tree==NULL) { exit(0); } tree->data=data; //创建左子树 creat_tree(tree->ltree); //创建右子树 creat_tree(tree->rtree); } } void PrintFromTopToBottom(BitTree &pNode) { if (pNode==NULL) { return; } deque<bittree> p_queue; p_queue.push_back(pNode); while (p_queue.size()) { BitTree temp=p_queue.front(); p_queue.pop_front(); cout<<temp->data<<'\t'; if (pNode->ltree) { p_queue.push_back(pNode->ltree); } if (pNode->rtree) { p_queue.push_back(pNode->rtree); } } } </temp-></bittree></bstree-></deque></stack></iostream>