二叉樹是乙個極其重要的資料結構,必須穩固掌握,在下就**二叉樹的基本操作。首先,是二叉樹的建立,建立分為三種方式,先序,中序,後序,本博文以先序為例,其他兩種類似。親身測試,能執行。**如下:
h檔案
#ifndef _tree_h
#define _tree_h
#include
#include
using
namespace
std;
typedef
struct binode
binode,*bitree;
void createbitree(bitree &t);
void printtree(bitree &t);
#endif
cpp檔案
#include
"tree.h"
void createbitree(bitree &t)
}
此處,特別要注意輸入資料的格式,不同的建立方法,輸入格式不同,如果輸入格式不匹配,將得不到任何結果,會處於迴圈遞迴,切記。如果你是使用先序進行建立二叉樹,那麼在輸入資料的時候,必須要用先序的二叉樹格式,此處用#代表最後的葉子節點,如果沒有這個,將無窮遞迴下去。
二叉樹的遍歷與建立 一樣,本例也用先序遍歷為例進行說明,很簡單,一看就明白,**如下:
void printtree(bitree &t)
else
}
先訪問根節點,在訪問左子樹,最後訪問右子樹,當訪問到左子樹的葉子節點,先訪問左節點,再訪問右節點,然後遞迴上去到父節點級別,由於其左右葉節點的父節點早之他們先被訪問,所以會跳轉到訪問該父節點的右兄弟,這樣依次遞迴,最終訪問完所有節點。 二叉樹的建立與遍歷 二叉樹遍歷模板)
初學二叉樹,感覺之前鍊錶掌握不熟練導致接受有點難,現在做一些總結。本題其實就是根據給出的前序遍歷 包括空子樹 寫出相應的前序 中序和後序遍歷。廢話不多說,先看看題目 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...