二叉樹操作

2021-06-08 06:12:53 字數 1343 閱讀 1751

最近在溫習資料結構,把書中的**寫了一遍,下面是二叉樹的基本操作,包括:

(1) 四種遍歷二叉樹的方法: 前序遍歷、中序遍歷、後序遍歷和層序遍歷,其中又包括了遞迴的和非遞迴;

(2) 兩種建立二叉樹的方法: 根據二叉樹的前序和中序序列建立二叉樹和根據二叉樹的中序後序序列建立二叉樹。

1. 二叉樹的儲存結構

/* headfiles/binode.h*/

#ifndef binode_h_included

#define binode_h_included

typedef struct binode binode, *bilist;

#endif // binode_h_included

2. 二叉樹的遍歷

(1)前序、中序和後續的遞迴演算法遍歷

遞迴演算法比較簡單:

/*sharedsource/preorder.c*/

void preorder(binode *t)

3. 非遞迴演算法

(1) 前序遍歷非遞迴

/*sharedsource/binode.c*/

void preorder2(binode *t) //非遞迴演算法前序遍歷二叉樹

if (top > 0)

} //while

}

(2) 中序遍歷非遞迴

/* sharedsource/inorder2.c*/

void inorder2(binode *t)

if (top > 0)

} //while

}

(3) 後序遍歷非遞迴

/* sharedsource/postorder2.c */

void postorder2(binode *t)

if (top > 0)

} //while

}

(4) 層序遍歷非遞迴

/* sharedsource/levelorder.c*/

void levelorder(binode *t)

if (p->rchild)

}// while

}

4. 測試結果

#include //包含各個檔案省略

int main(void)

輸出:

二叉樹操作

本文章主要包括了以下內容 建立二叉樹類。二叉樹的儲存結構使用鍊錶。供操作 前序遍歷 中序遍歷 後序遍歷 層次遍歷 計算二叉樹結點數目 計算二叉樹高度。接收鍵盤錄入的二叉樹前序序列和中序序列 各元素各不相同 輸出該二叉樹的後序序列。下面是c include include include using ...

二叉樹操作

includeusing namespace std struct btree 建立二叉樹 void createtree btree t else 遞迴,先序遍歷 void preorder btree temp 遞迴,中序遍歷 void inorder btree temp 遞迴,後序遍歷 vo...

二叉樹操作

思路 使用遞迴進行建立。public static heronode createtree heronode node else return node 思路 使用遞迴進行複製 public static heronode copybinarytree heronode node 建立乙個臨時節點,...