內容:
二叉樹初始化(先序輸入)
層序遍歷(非遞迴的佇列方式)
先序遍歷(遞迴)
中序遍歷(遞迴)
後序遍歷(遞迴)
**:
#include#include#include#include#define nodedata char
using namespace std;
typedef struct treenode
treenode, *tree;
#define quedata treenode*
typedef struct quenode
quenode;
typedef struct queque
queue;
void _init(queue &q)
bool _empty(queue q)
quedata firstnode(queue q)
void qpush(queue &q, quedata e)
quedata qpop(queue &q)
void initroot(tree &root)
void initchild(tree &root)//前序輸入初始化 }
void visitallpre(tree tree1)//前序
}void visitallmid(tree tree1)//中
}void visitallaft(tree tree1)//後序
}void visitallfloor(tree tree1)//層次
while (!_empty(q))
if (firstnode(q)->rchild != null)
qpop(q); }}
int main()
程式截圖 二叉樹的實現和四種遍歷
include include using namespace std struct node node newnode int x void insert node root,int x if xdata else void search node root,int x,int newdata s...
二叉樹四種遍歷方式
二叉樹的四種遍歷方式 include include using namespace std 二叉樹節點的定義 class treenode 遞迴方式,每個結點只遍歷一次,時間複雜度o 1 遞迴最多呼叫n次,空間複雜度o n 先序 根 遞迴左 遞迴右 void preorder treenode r...
二叉樹的四種遍歷方式
前言最近做題用到很多次二叉樹的遍歷,因此寫這篇文章記錄二叉樹的四種遍歷方式。首先為了方便,先假設二叉樹的結構如下 struct treenode 對於程式的輸入為 3 根節點root 9 20 4 10 15 71.二叉樹的層次遍歷 層次遍歷就是依次遍歷樹的每一層。借助佇列,可以輕鬆實現。void ...