#include <iostream> #include <stack> using namespace std; //创建树结构 typedef struct node { int data; struct node *ltree,*rtree; }*BitTree,bitTree; //创建树函数 void creat_tree(BitTree &tree); void MirrorRecursively(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 MirrorRecursively(BitTree &pNode) { stack<bittree> pBitTree; pBitTree.push(pNode); while (pBitTree.size()) { BitTree pnode=pBitTree.top(); pBitTree.pop(); BitTree temp; temp=pNode->ltree; pNode->ltree=pNode->rtree; pNode->rtree=temp; if (pNode->ltree) { pBitTree.push(pNode->ltree); } if (pNode->rtree) { pBitTree.push(pNode->rtree); } } } </bittree></bstree-></stack></iostream>