二叉樹的四種遍歷(先中後序,層次遍歷)

2021-10-07 11:04:03 字數 991 閱讀 7164

先序遍歷(preorder)的操作過程如下:

若二叉樹為空,則什麼也不做;

若二叉樹非空:

typedef struct bitnodebitnode, *bitree;

//先序遍歷

void preorder(bitree t)

}

中序遍歷(inorder)的操作過程如下:

若二叉樹為空,則什麼也不做;

若二叉樹非空:

//中序遍歷

void inorder(bitree t)

}

後序遍歷(postorder)的操作過程如下:

若二叉樹為空,則什麼也不做

若二叉樹非空:

//後續遍歷

void postorder(bitree t)

}

int treedepth(bitree t) else

}

演算法思想:

初始化乙個輔助佇列

根結點入隊

若佇列非空,則隊頭結點出隊,訪問該結點,並將其左右孩子插入隊尾(如果有的話)

重複3直至隊列為空

//二叉樹的結點(鏈式儲存)

typedef struct bitnodebitnode, *bitnode;

//鏈式佇列結點

typedef struct linknodelinknode;

typedef structlinkqueue;

//層序遍歷

void levelorder(bitree t)

if(p->rchild!=null)

}}

二叉樹先序遍歷,中序遍歷,後序遍歷,層次遍歷。

原理 如圖 先序遍歷結果為 abdhecfg 首先從根節點開始,然後左節點,左節點成為根節點,然後再左節點,然後右節點 如果左子樹遍歷完後就遍歷該根節點的右子樹 中序遍歷結果為 hdbeafcg 當左節點被讀取後,左節點被當作根節點 後序遍歷結果為 hdebfgca 注意每個節點的左右子樹必須遍歷完...

二叉樹的先中後序遍歷

二叉樹的先中後序遍歷 package com.treenode 二叉樹先中後順序遞迴遍歷 public class diguibianli 先序遍歷 public static void preorder node head preorder head.left preorder head.righ...

二叉樹的先中後序遍歷

二叉樹相關概念 1.1 定義 二叉樹是一顆樹,其中每個節點都不能有多餘兩個兒子 這裡寫描述 1.2 重要性質 平均二叉樹的深度要比n小得多 n是該二叉樹的節點個數 這裡寫描述 二叉樹的表示方法說明 2.1 樹一般畫成圓圈並用一些直線連線起來,因為二叉樹實際上就是圖,但涉及到樹時,我們也不明顯地畫出 ...