二叉樹的建立,遞迴遍歷,非遞迴遍歷,直接看**
#include
#include
<
stack
>
using namespace std;
//結構體
typedef struct node
node, *tree;
//建立乙個結點
node *createnode()
memset(p, 0, sizeof(node));
return p;
}//建立一棵二叉樹
node* createtree(char *&s)
node*p =
null;
if(*s !=
'$')
return p;
}//先序
void preorder(node *root)
}//後序
void back(node*p)
}//後序非遞迴遍歷
void back(node *root)
stack
s;node*cur=
null;
node*pre =
null;
cur = root;
s.push(cur);
while(!s.empty())
else
if(cur->lchild !=
null)}}
}//中序遞迴遍歷
void inorder(node*root)
}//非遞迴先序遍歷
void pre2(node*root)
stack
s;node* p =root;
while(p !=
null
||!s.empty() )
if(!s.empty())
}}//費遞迴中序遍歷
void _inorder(node*root)
stack
s;node*p = root;
while(p !=
null
||!s.empty())
if(!s.empty())
}}int main()
二叉樹的建立與遍歷 二叉樹遍歷模板)
初學二叉樹,感覺之前鍊錶掌握不熟練導致接受有點難,現在做一些總結。本題其實就是根據給出的前序遍歷 包括空子樹 寫出相應的前序 中序和後序遍歷。廢話不多說,先看看題目 description 下面給出了教材中演算法6.4所示的演算法。status createbitree bitree t retur...
二叉樹建立與遍歷
二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱為 左子樹 和 右子樹 二叉樹的每個節點最多只能右兩棵子樹,子樹有左右之分,次序不能顛倒。除了葉結點外每乙個結點都有左右子葉且葉子結點都處在最底層的二叉樹。假設二叉樹的高度為k,除第k層外,其他各層的節點數都達到最大個數。也就是第一層到第k 1層為...
二叉樹建立與遍歷
節點定義 class binnode binnode char data2 data data2 binnode char data2,binnode parent2 data data2 void insertasleft char data void insertasright char dat...