{"id":274,"date":"2011-09-21T13:25:30","date_gmt":"2011-09-21T05:25:30","guid":{"rendered":"http:\/\/wangkaixuan.tech\/?p=274"},"modified":"2020-06-06T13:26:57","modified_gmt":"2020-06-06T05:26:57","slug":"%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84_%e6%a0%91_%e4%ba%8c%e5%8f%89%e6%a0%91%e7%9a%84%e5%bb%ba%e7%ab%8b%e3%80%81%e9%81%8d%e5%8e%86%e3%80%81%e5%a4%8d%e5%88%b6%e4%b8%8e%e7%a7%bb%e9%99%a4_%e4%ba%8c","status":"publish","type":"post","link":"http:\/\/www.wangkaixuan.tech\/?p=274","title":{"rendered":"\u6570\u636e\u7ed3\u6784_\u6811_\u4e8c\u53c9\u6811\u7684\u5efa\u7acb\u3001\u904d\u5386\u3001\u590d\u5236\u4e0e\u79fb\u9664_\u4e8c\u53c9\u94fe\u8868\u5b58\u50a8_C++\u5b9e\u73b0"},"content":{"rendered":"\n<p>head.h<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include&lt;iostream>\nusing namespace std;\n\nclass BitNode\n{\npublic:\n\tBitNode();\n\tchar ch;\n\tBitNode *lchild, *rchild;\n};\n\nBitNode::BitNode()\n{\n\tlchild = rchild = NULL;\n}\n\nclass BiTree\n{\npublic:\n\tBiTree();\n\tvoid CreatBiTree(); \/\/\u5efa\u7acb\u4e8c\u53c9\u6811\n\tvoid Traverse(); \/\/\u904d\u5386\u4e8c\u53c9\u6811\n\tvoid CopyBiTree(); \/\/\u590d\u5236\u4e8c\u53c9\u6811\nprivate:\n\tvoid ReMoveBiTree(BitNode*&amp;); \/\/\u79fb\u9664\u6574\u68f5\u4e8c\u53c9\u6811\n\tvoid PreOrderCreatBiTree(BitNode*&amp;); \/\/\u5148\u5e8f\u5efa\u7acb\u4e8c\u53c9\u6811\n\tvoid PreOrderTraverse(BitNode*&amp;); \/\/\u5148\u5e8f\u904d\u5386\u4e8c\u53c9\u6811\n\tvoid InOrderTraverse(BitNode*&amp;); \/\/\u4e2d\u5e8f\u904d\u5386\u4e8c\u53c9\u6811\n\tvoid PostOrderTraverse(BitNode*&amp;); \/\/\u540e\u5e8f\u904d\u5386\u4e8c\u53c9\u6811\n\tvoid Copy(BitNode*&amp;, BitNode*&amp;); \/\/\u590d\u5236\u4e8c\u53c9\u6811\n\tBitNode *root;\n\tchar ch;\n};\n\nBiTree::BiTree()\n{\n\troot = NULL;\n}\n\nvoid BiTree::CreatBiTree()\n{\n\tcout &lt;&lt; \"CreatBiTree Called !\" &lt;&lt; endl &lt;&lt; endl;\n\tif (root != NULL)\n\t\tReMoveBiTree(root);\n\tchar choice;\n\tcout &lt;&lt; \"You Choice , Please ?\" &lt;&lt; endl &lt;&lt; endl &lt;&lt; \"1 . PreOrderCreatBiTree\"\n\t\t\t&lt;&lt; endl &lt;&lt; \"9 . Quit\" &lt;&lt; endl &lt;&lt; endl;\n\tcin >> choice;\n\tcout &lt;&lt; \"Please Enter The BitTree :\" &lt;&lt; endl &lt;&lt; endl;\n\tswitch (choice)\n\t{\n\tcase '1':\n\t\tPreOrderCreatBiTree(root);\n\t\tbreak;\n\tcase '9':\n\t\tbreak;\n\tdefault:\n\t\tcout &lt;&lt; \"No Such Choice !\" &lt;&lt; endl &lt;&lt; endl;\n\t\tbreak;\n\t}\n\tcin.clear();\n}\n\nvoid BiTree::Traverse()\n{\n\tcout &lt;&lt; \"Traverse Called !\" &lt;&lt; endl &lt;&lt; endl;\n\tif (root == NULL)\n\t{\n\t\tcout &lt;&lt; \"BiTree Is Empty !\" &lt;&lt; endl &lt;&lt; endl;\n\t\treturn;\n\t}\n\tchar choice;\n\tcout &lt;&lt; \"You Choice , Please ?\" &lt;&lt; endl &lt;&lt; endl &lt;&lt; \"1 . PreOrderTraverse\"\n\t\t\t&lt;&lt; endl &lt;&lt; \"2 . InOrderTraverse\" &lt;&lt; endl &lt;&lt; \"3 . PostOrderTraverse\"\n\t\t\t&lt;&lt; endl &lt;&lt; \"9 . Quit\" &lt;&lt; endl &lt;&lt; endl;\n\tcin >> choice;\n\tswitch (choice)\n\t{\n\tcase '1':\n\t\tPreOrderTraverse(root);\n\t\tbreak;\n\tcase '2':\n\t\tInOrderTraverse(root);\n\t\tbreak;\n\tcase '3':\n\t\tPostOrderTraverse(root);\n\t\tbreak;\n\tcase '9':\n\t\tbreak;\n\tdefault:\n\t\tcout &lt;&lt; \"No Such Choice !\" &lt;&lt; endl &lt;&lt; endl;\n\t\tbreak;\n\t}\n\tcout &lt;&lt; endl &lt;&lt; endl;\n}\n\nvoid BiTree::PreOrderTraverse(BitNode *&amp;t)\n{\n\tif (t != NULL)\n\t{\n\t\tcout &lt;&lt; t->ch;\n\t\tPreOrderTraverse(t->lchild);\n\t\tPreOrderTraverse(t->rchild);\n\t}\n}\n\nvoid BiTree::InOrderTraverse(BitNode *&amp;t)\n{\n\tif (t != NULL)\n\t{\n\t\tInOrderTraverse(t->lchild);\n\t\tcout &lt;&lt; t->ch;\n\t\tInOrderTraverse(t->rchild);\n\t}\n}\n\nvoid BiTree::PostOrderTraverse(BitNode *&amp;t)\n{\n\tif (t != NULL)\n\t{\n\t\tPostOrderTraverse(t->lchild);\n\t\tPostOrderTraverse(t->rchild);\n\t\tcout &lt;&lt; t->ch;\n\t}\n}\n\nvoid BiTree::PreOrderCreatBiTree(BitNode *&amp;t)\n{\n\tif (cin >> ch)\n\t{\n\t\tif (ch == '#')\n\t\t\tt = NULL;\n\t\telse\n\t\t{\n\t\t\tt = new BitNode;\n\t\t\tt->ch = ch;\n\t\t\tPreOrderCreatBiTree(t->lchild);\n\t\t\tPreOrderCreatBiTree(t->rchild);\n\t\t}\n\t}\n}\n\nvoid BiTree::ReMoveBiTree(BitNode *&amp;t)\n{\n\tif (t != NULL)\n\t{\n\t\tReMoveBiTree(t->lchild);\n\t\tReMoveBiTree(t->rchild);\n\t\tdelete t;\n\t}\n}\n\nvoid BiTree::CopyBiTree()\n{\n\tcout &lt;&lt; \"Copy BiTree Called !\" &lt;&lt; endl &lt;&lt; endl;\n\tif (root == NULL)\n\t{\n\t\tcout &lt;&lt; \"No BiTree To Copy !\" &lt;&lt; endl &lt;&lt; endl;\n\t\treturn;\n\t}\n\tBitNode *t;\n\tCopy(t, root);\n\tPreOrderTraverse(t);\n\tcout &lt;&lt; endl &lt;&lt; endl;\n\tInOrderTraverse(t);\n\tcout &lt;&lt; endl &lt;&lt; endl;\n\tPostOrderTraverse(t);\n\tcout &lt;&lt; endl &lt;&lt; endl;\n\tReMoveBiTree(t);\n}\n\nvoid BiTree::Copy(BitNode *&amp;t, BitNode *&amp;r)\n{\n\tif (r != NULL)\n\t{\n\t\tt = new BitNode;\n\t\tt->ch = r->ch;\n\t\tCopy(t->lchild, r->lchild);\n\t\tCopy(t->rchild, r->rchild);\n\t}\n}\n<\/code><\/pre>\n\n\n\n<p>main.cpp<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include&lt;iostream>\n#include\"head.h\"\nusing namespace std;\n\nint main()\n{\n\tBiTree t;\n\tchar choice;\n\twhile (1)\n\t{\n\t\tcout &lt;&lt; \"You Choice , Please ?\" &lt;&lt; endl &lt;&lt; endl &lt;&lt; \"1 . CreatBiTree\"\n\t\t\t\t&lt;&lt; endl &lt;&lt; \"2 . Traverse\" &lt;&lt; endl &lt;&lt; \"3 . CopyBiTree\" &lt;&lt; endl\n\t\t\t\t&lt;&lt; \"9 . Quit\" &lt;&lt; endl &lt;&lt; endl;\n\t\tcin >> choice;\n\t\tswitch (choice)\n\t\t{\n\t\tcase '1':\n\t\t\tt.CreatBiTree();\n\t\t\tbreak;\n\t\tcase '2':\n\t\t\tt.Traverse();\n\t\t\tbreak;\n\t\tcase '3':\n\t\t\tt.CopyBiTree();\n\t\t\tbreak;\n\t\tcase '9':\n\t\t\treturn 0;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tcout &lt;&lt; \"No Such Choice !\" &lt;&lt; endl &lt;&lt; endl;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn 0;\n}\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>head.h main.cpp<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-274","post","type-post","status-publish","format-standard","hentry","category-06-02-"],"_links":{"self":[{"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=\/wp\/v2\/posts\/274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=274"}],"version-history":[{"count":0,"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=\/wp\/v2\/posts\/274\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=274"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}