<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT元素 &#187; 二叉树</title>
	<atom:link href="http://www.ourys.com/tags/bittree/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ourys.com</link>
	<description>Hector的编程笔记夹，如果喜欢，收藏一个</description>
	<lastBuildDate>Wed, 18 Jan 2012 22:07:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>二叉树的建立和后序遍历的演示&#8211;数据结构课程设计论文下载</title>
		<link>http://www.ourys.com/post/74.html</link>
		<comments>http://www.ourys.com/post/74.html#comments</comments>
		<pubDate>Wed, 01 Jul 2009 16:11:15 +0000</pubDate>
		<dc:creator>Hector</dc:creator>
				<category><![CDATA[数据结构]]></category>
		<category><![CDATA[二叉树]]></category>
		<category><![CDATA[后序遍历]]></category>

		<guid isPermaLink="false">http://www.ourys.com/hector/ourys.com/?p=63</guid>
		<description><![CDATA[<p>&#160;这是我们数据结构课程完结后的一个课程设计的论文。希望能对大家有所帮助，但是希望你不要抄，参照一下格式等等。我的论文题目是：二叉树的建立和后序遍历的演示下载地址：&#160;200907031639540461.doc</p>
]]></description>
			<content:encoded><![CDATA[<p>&nbsp;这是我们数据结构课程完结后的一个课程设计的论文。希望能对大家有所帮助，但是希望你不要抄，参照一下格式等等。</p>
<p>我的论文题目是：</p>
<p><strong><span class='wp_keywordlink_affiliate'><a href="http://www.ourys.com/tags/bittree" title="查看 二叉树 中的全部文章" target="_blank">二叉树</a></span>的建立和<span class='wp_keywordlink_affiliate'><a href="http://www.ourys.com/tags/postorder-traversal" title="查看 后序遍历 中的全部文章" target="_blank">后序遍历</a></span>的演示</strong></p>
<p>下载地址：</p>
<p>&nbsp;</p>
<p><a target="_blank" href="http://www.ourys.com/upload/2009/7/200907031639540461.doc">200907031639540461.doc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourys.com/post/74.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>二叉树（前中后序递归非递归遍历，层次遍历，C++实现）</title>
		<link>http://www.ourys.com/post/46.html</link>
		<comments>http://www.ourys.com/post/46.html#comments</comments>
		<pubDate>Sat, 13 Jun 2009 01:08:03 +0000</pubDate>
		<dc:creator>Hector</dc:creator>
				<category><![CDATA[数据结构]]></category>
		<category><![CDATA[二叉树]]></category>
		<category><![CDATA[层次遍历]]></category>
		<category><![CDATA[递归遍历]]></category>
		<category><![CDATA[非递归遍历]]></category>

		<guid isPermaLink="false">http://www.ourys.com/hector/ourys.com/?p=37</guid>
		<description><![CDATA[[CODE=cplusplus]<br/>/*//////////////////////////////////////////////////////////////////////////////<br/>// 名    称 (Unit Name):    BiTree.h 二叉树头文件<br/>// 作    者 (  Author ):    Hector(张伟)<br/>// 邮    箱 (  E-mail ):
]]></description>
			<content:encoded><![CDATA[<p>[CODE=cplusplus]<br/>/*//////////////////////////////////////////////////////////////////////////////<br/>// 名    称 (Unit Name):    BiTree.h <span class='wp_keywordlink_affiliate'><a href="http://www.ourys.com/tags/bittree" title="查看 二叉树 中的全部文章" target="_blank">二叉树</a></span>头文件<br/>// 作    者 (  Author ):    Hector(张伟)<br/>// 邮    箱 (  E-mail ):    ourys@qq.com<br/>// 支    持 ( Support ):    http://www.ourys.com           <br/>// 备    注 ( Remarks ): 包含文件栈的地址：http://www.ourys.com/post/38.html， 包含文件队列的地址：http://www.ourys.com/post/38.html<br/>//////////////////////////////////////////////////////////////////////////////*/<br/>#ifndef _BITREE_H<br/>#define  _BITREE_H<br/>#include “Stack.h”<br/><br/>#include “Queue.h”<br/>template <class DataType><br/>class BiTree;                                      //友元类引用申明<br/>/*&#8212;&#8212;&#8211;  树的节点定义，将BiTree定义为友元类，便于对其操作  &#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>class TreeNode<br/>{<br/> TreeNode():lchild(NULL),rchild(NULL){}<br/> friend class BiTree<DataType>;<br/>private:<br/> DataType data;<br/> TreeNode *lchild,*rchild;<br/> //bool tag;                                    //后序遍历时用的标志域<br/>};<br/>/*&#8212;&#8212;&#8211;  <span class='wp_keywordlink_affiliate'><a href="http://www.ourys.com/tags/bittree" title="查看 二叉树 中的全部文章" target="_blank">二叉树</a></span>树开始  &#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>class BiTree{<br/>public:<br/> void CreateBiTree();                            //创建根节点&#8212;&#8212;主过程<br/> void CreateBiTree(TreeNode<DataType>* &#038;p);      //创建节点函数&#8212;-子过程<br/> void PreROrderTraverse();                       //递归&#8212;&#8212;先序遍历<span class='wp_keywordlink_affiliate'><a href="http://www.ourys.com/tags/bittree" title="查看 二叉树 中的全部文章" target="_blank">二叉树</a></span>&#8212;主过程              <br/> void PreROrderTraverse(TreeNode<DataType>* p);  //递归&#8212;&#8212;先序遍历二叉树&#8212;子过程<br/> void InROrderTraverse();                        //递归&#8212;&#8212;中序遍历二叉树&#8212;主过程<br/> void InROrderTraverse(TreeNode<DataType>* p);   //递归&#8212;&#8212;中序遍历二叉树&#8212;子过程<br/> void PosROrderTraverse();                       //递归&#8212;&#8212;后序遍历二叉树&#8212;主过程<br/> void PosROrderTraverse(TreeNode<DataType>* p);  //递归&#8212;&#8212;后序遍历二叉树&#8212;子过程<br/> void PreOrderTraverse();                        //非递归&#8212;&#8212;中序遍历二叉树<br/> void InOrderTraverse();                         //非递归&#8212;&#8212;中序遍历二叉树<br/> void PosOrderTraverse();                        //非递归&#8212;&#8212;后序遍历二叉树<br/> void LevelOrderTraverse();                      //非递归&#8212;&#8212;<span class='wp_keywordlink_affiliate'><a href="http://www.ourys.com/tags/hierarchy-traversal" title="查看 层次遍历 中的全部文章" target="_blank">层次遍历</a></span>二叉树<br/>protected:<br/> TreeNode<DataType>* root;                       //树根<br/> DataType temp;                                  //代表元素为空的符号<br/>};<br/>/*&#8212;&#8212;&#8211;   创建根节点&#8212;-主过程&#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::CreateBiTree()<br/>{<br/> cout<<"请输入代表元素为空的符号:";<br/> cin>>temp;   //若换输入方式，以上三句可以去掉<br/> if(!(root=(TreeNode<DataType>*)malloc(sizeof(TreeNode<DataType>)))) exit(1);<br/> cout<<"请输入数据:"<<endl;<br/> CreateBiTree(root);<br/>}<br/>/*&#8212;&#8212;&#8211;创建节点函数&#8212;-子过程&#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::CreateBiTree(TreeNode<DataType>* &#038;p)<br/>{<br/> TreeNode<DataType>* px;<br/> if(!(px=(TreeNode<DataType>*)malloc(sizeof(TreeNode<DataType>)))) exit(1);<br/> cin>>px->data;<br/> if(px->data==temp) {p=NULL;free(px);}<br/> else{<br/> p=px;<br/>// p->tag=false;                                  //后序遍历时用的标志域初始化<br/> CreateBiTree(px->lchild);<br/> CreateBiTree(px->rchild);<br/> }<br/>}<br/>/*&#8212;&#8212;&#8211;   递归&#8212;&#8212;先序遍历二叉树&#8212;主过程  &#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::PreROrderTraverse()<br/>{<br/> PreROrderTraverse(root);<br/>}<br/>/*&#8212;&#8212;&#8211;   递归&#8212;&#8212;先序遍历二叉树&#8212;子过程   &#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::PreROrderTraverse(TreeNode<DataType>* p)<br/>{<br/> if(p){<br/>  cout<
<p->data<<" ";<br/>  PreROrderTraverse(p->lchild);<br/>  PreROrderTraverse(p->rchild);<br/> }<br/>}<br/>/*&#8212;&#8212;&#8211;   递归&#8212;&#8212;中序遍历二叉树&#8212;主过程   &#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::InROrderTraverse()<br/>{<br/> InROrderTraverse(root);<br/>}<br/>/*&#8212;&#8212;&#8211;   递归&#8212;&#8212;中序遍历二叉树&#8212;子过程   &#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::InROrderTraverse(TreeNode<DataType>* p)<br/>{<br/> if(p){<br/>  InROrderTraverse(p->lchild);<br/>  cout<
<p->data<<" ";<br/>  InROrderTraverse(p->rchild);<br/> }<br/>}<br/>/*&#8212;&#8212;&#8211;   递归&#8212;&#8212;后序遍历二叉树&#8212;主过程   &#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::PosROrderTraverse()<br/>{<br/> PosROrderTraverse(root);<br/>}<br/>/*&#8212;&#8212;&#8211;   递归&#8212;&#8212;后序遍历二叉树&#8212;子过程   &#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::PosROrderTraverse(TreeNode<DataType>* p)<br/>{<br/> if(p){<br/>  PosROrderTraverse(p->lchild);<br/>  PosROrderTraverse(p->rchild);<br/>  cout<
<p->data<<" ";<br/> }<br/>}<br/>/*&#8212;&#8212;&#8211;   非递归&#8212;&#8212;前序遍历二叉树&#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::PreOrderTraverse()<br/>{<br/> Stack<TreeNode<DataType>*> S;<br/> TreeNode<DataType>* p;<br/> p=root;<br/> while(p||!S.StackEmpty()){<br/>  if(p){S.Push(p);cout<
<p->data<<" "; p=p->lchild;}<br/>  else{<br/>   S.Pop(p);<br/>   p=p->rchild;<br/>  }<br/> }<br/> S.DestroyStack();<br/>}<br/>/*&#8212;&#8212;&#8211;   非递归&#8212;&#8212;中序遍历二叉树&#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::InOrderTraverse()<br/>{<br/> Stack<TreeNode<DataType>*> S;<br/> TreeNode<DataType>* p;<br/> p=root;<br/> while(p||!S.StackEmpty()){<br/>  if(p){S.Push(p); p=p->lchild;}<br/>  else{<br/>   S.Pop(p);<br/>   cout<
<p->data<<" ";<br/>   p=p->rchild;<br/>  }<br/> }<br/> S.DestroyStack();<br/>}<br/><br/>/*&#8212;&#8212;&#8211;非递归&#8212;&#8212;后序遍历二叉树（没有使用标志域）&#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::PosOrderTraverse()<br/>{<br/> Stack<TreeNode<DataType>*> S;<br/> TreeNode<DataType>* p;<br/> TreeNode<DataType>* r;       //使用r节点表示访问了右子树替代标志域<br/> p=root;<br/> while(p||!S.StackEmpty())<br/> {<br/>  if(p){S.Push(p);p=p->lchild;}<br/>  else{<br/>   S.GetTop(p);<br/>   if(p->rchild&#038;&#038;p->rchild!=r){p=p->rchild;S.Push(p);p=p->lchild;}<br/>   else{S.Pop(p);cout<
<p->data<<" ";r=p;p=NULL;}<br/>  }<br/> }<br/> S.DestroyStack();<br/>}<br/><br/>/*&#8212;&#8212;&#8211;非递归&#8212;&#8212;后序遍历二叉树（运用标志域，使用时请将有关tag的注释取消掉）&#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>//template <class DataType><br/>//void BiTree<DataType>::PosOrderTraverse()<br/>//{<br/>// Stack<TreeNode<DataType>*> S;<br/>// TreeNode<DataType>* p;<br/>// p=root;<br/>// while(p||!S.StackEmpty())<br/>// {<br/>//  if(p){S.Push(p); p->tag=true;p=p->lchild;}<br/>//  else{<br/>//   S.GetTop(p);<br/>//   if(p->rchild&#038;&#038;!p->rchild->tag){  <br/>//     p=p->rchild;S.Push(p);p->tag=true;p=p->lchild;<br/>//   }<br/>//   else{S.Pop(p);cout<
<p->data<<" ";p=NULL;}<br/>//  }<br/>// }<br/>//  S.DestroyStack();<br/>//}<br/>/*&#8212;&#8212;&#8211;    非递归&#8212;&#8212;<span class='wp_keywordlink_affiliate'><a href="http://www.ourys.com/tags/hierarchy-traversal" title="查看 层次遍历 中的全部文章" target="_blank">层次遍历</a></span>二叉树    &#8212;&#8212;&#8212;&#8212;&#8211;*/<br/>template <class DataType><br/>void BiTree<DataType>::LevelOrderTraverse()<br/>{<br/> Queue<TreeNode<DataType>*> qu;<br/> TreeNode<DataType>* p;<br/> qu.EnQueue(root);<br/> while(!qu.QueueEmpty()){<br/>  qu.DeQueue(p);<br/>  cout<
<p->data<<" ";<br/>  if (p->lchild!= NULL) qu.EnQueue(p->lchild);<br/>        if (p->rchild!= NULL) qu.EnQueue(p->rchild);<br/> }<br/>}<br/>#endif<br/><br/>/*&#8212;&#8212;&#8212;&#8212;&#8212;-   http://ourys.com原创，做人要厚道，转帖请标明来处    &#8212;&#8212;- Author:Hector &#8212;&#8212;-*/<br/><br/>/*&#8212;&#8212;&#8212;&#8212;&#8212;-  基本测试文件  &#8212;&#8212;-*/<br/><br/>#include<iostream><br/>using namespace std;<br/>#include “BiTree.h”<br/>int main(void)<br/>{<br/> BiTree<char> my;<br/> my.CreateBiTree();<br/> my.PreROrderTraverse();<br/> cout<<endl;<br/> my.PreOrderTraverse();<br/> cout<<endl;<br/> my.InOrderTraverse();<br/> cout<<endl;<br/> my.InROrderTraverse();<br/> cout<<endl;<br/> my.PosROrderTraverse();<br/> cout<<endl;<br/> my.<br />
PosOrderTraverse();<br/><br/>cout<<endl;<br/> my.LevelOrderTraverse();<br/> return 0;<br/>}<br/>[/CODE]<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ourys.com/post/46.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

