二叉樹的建立 鏈式儲存,遍歷,深度,節點數,路徑)

2021-07-09 04:19:17 字數 1441 閱讀 4547

資料結構程式設計練習(六)

題目:1)能夠呼叫遞迴函式讀取相應的資料建立二叉樹,相應資料格式自行設計; 

2)實現先序、中序、後序遍歷二叉樹

3)求取二叉樹中的所有結點數

4)求取二叉樹的深度

5)查詢某節點是否存在並輸出路徑

輸入如圖所示二叉樹的方式為依次輸入:1,2,-1,4,-1,-1,3,5,-1,-1,6,-1,-1

**實現:

#include "iostream"

#include "stack"

using namespace std;

struct tree

;class bitree

;bitree::bitree()

bitree::~bitree()

void bitree::release(tree *&node)  }

//二叉樹的建立(鏈式儲存)  

int bitree::create_bt(tree *&node)

else

}//訪問結點

int bitree::visit(tree *node)

//先序遍歷

int bitree::preorder(tree *node)

return 0;

} //中序遍歷

int bitree::inorder(tree *node)

return 0;

} //後序遍歷

int bitree::postorder(tree *node)

return 0;

} //計算二叉樹的結點數(先序遍曆法)

int bitree::calculate_node(tree *node,int &n)

return 0;

} //求二叉樹的深度

int bitree::depth(tree *node)

//計算到某節點的路徑

int bitree::path(tree *node, int x)

}return 0;

} //取較大值

int bitree::max(int a,int b)

int main()

{    bitree obj1;

obj1.flag=false;

int n=0;

obj1.create_bt(obj1.root);

cout<

obj1.preorder(obj1.root);

cout<>x;

obj1.path(obj1.root,x);

if(!obj1.flag)

cout<

二叉樹 鏈式儲存的遍歷

include include include define status void define teletype char define null 0 typedef struct bitnode bitnode,bitree bitree jj bitree bin jj 構造二叉樹鍊錶表示的...

10 二叉樹 鏈式儲存 遞迴遍歷

終於進入非線性資料結構的第一站了!先從簡單的開始回憶起來吧!1 二叉樹的鏈式儲存 用乙個鍊錶來儲存一顆二叉樹,每乙個結點用鍊錶的乙個鏈結點來儲存。通常地,乙個二叉鍊錶至少包含3個域 資料域data 左指標域lchild 右指標域rchild。現實應用的過程中,可以按照自己的需求新增其他指標域。1 t...

二叉樹的鏈式儲存

實現二叉樹的基本操作 建立 遍歷 計算深度 結點數 葉子數等。輸入c,先序建立二叉樹,表示空節點 輸入h 計算二叉樹的高度 輸入l 計算二叉樹的葉子個數 輸入n 計算二叉樹節點總個數 輸入1 先序遍歷二叉樹 輸入2 中序遍歷二叉樹 輸入3 後續遍歷二叉樹 輸入f 查詢值 x的節點的個數 輸入p 以縮...