一:
二叉樹的順序儲存結構
二:建立二叉樹的過程
三:**實現
#ifndef _seqtree_h
#define _seqtree_h
#include
#include
#include
#include
#define maxsize 100
typedef
char seqtree[maxsize]
;extern
void
initseqtree
(seqtree tree)
;extern
void
createseqtree
(seqtree tree,
int i)
;extern
intgetseqtreedepth
(seqtree tree)
;extern
intgetseqtreelength
(seqtree tree)
;extern
char
getseqtreeroot
(seqtree tree)
;#endif
// !_seqtree_h
#include
"seqtree.h"
/* 初始化空二叉樹 */
void
initseqtree
(seqtree tree)
}/* 建立完全二叉樹,i為陣列中的下標 */
void
createseqtree
(seqtree tree,
int i)
tree[i]
= ch;
//某個結點輸入完畢後,還需要讓使用者輸入左孩子和右孩子
printf
("左孩子結點:");
createseqtree
(tree,
2* i +1)
;//遞迴呼叫
printf
("右孩子結點:");
createseqtree
(tree,2*
(i +1)
);}/* 獲取樹的根結點元素 */
char
getseqtreeroot
(seqtree tree)
/* 獲取樹的結點數 */
intgetseqtreelength
(seqtree tree)
return len;
}/* 獲取樹的深度 */
intgetseqtreedepth
(seqtree tree)
return depth;
}
#include
"seqtree.h"
intmain()
printf
("\n");
system
("pause");
return0;
}
注:**測試還有點問題。
以下是修改後的**,測試無誤。
#include
"seqtree.h"
voidk(
int i)
;int
main()
printf
("\n");
root=
getseqtreeroot
(tree)
;printf
("根結點元素為:%d\n"
, root)
; count =
getseqtreelength
(tree)
;printf
("樹的結點個數為:%d\n"
, count)
; depth =
getseqtreedepth
(tree)
;printf
("樹的深度為:%d\n"
, depth)
;system
("pause");
return0;
}
#include
"seqtree.h"
/* 初始化空二叉樹 */
void
initseqtree
(seqtree tree)
}/* 建立完全二叉樹,i為陣列中的下標 */
void
createseqtree
(seqtree tree,
int i)
tree[i]
= k;
//某個結點輸入完畢後,還需要讓使用者輸入左孩子和右孩子
printf
("左孩子結點:");
createseqtree
(tree,
2* i +1)
;//遞迴呼叫
printf
("右孩子結點:");
createseqtree
(tree,2*
(i +1)
);}/* 獲取樹的根結點元素 */
intgetseqtreeroot
(seqtree tree)
/* 獲取樹的結點數 */
intgetseqtreelength
(seqtree tree)
return len;
}/* 獲取樹的深度 */
intgetseqtreedepth
(seqtree tree)
return depth;
}
#ifndef _seqtree_h
#define _seqtree_h
#include
#include
#include
#include
#define maxsize 100
typedef
int seqtree[maxsize]
;extern
void
initseqtree
(seqtree tree)
;extern
void
createseqtree
(seqtree tree,
int i)
;extern
intgetseqtreedepth
(seqtree tree)
;extern
intgetseqtreelength
(seqtree tree)
;extern
intgetseqtreeroot
(seqtree tree)
;#endif
// !_seqtree_h
//測試結果
順序儲存二叉樹
從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列,看下面的示意圖。順序二叉樹通常只考慮完全二叉樹 第n個元素的左子節點為 2 n 1 第n個元素的右子節點為 2 n 2 第 n 個元素的父節點為 n 1 2 n 表示二叉樹中的第幾個元素 按 0 開始編號...
順序儲存二叉樹
從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列。陣列轉換成樹即是將陣列中的各個元素按照二叉樹的層次儲存起來的過程。原陣列 1,2,3,4,5,6,7 轉換為順序二叉樹如下圖所示 順序儲存二叉樹的特點 通常只考慮完全二叉樹 第n個元素的左子節點為2 n ...
順序儲存二叉樹
package com.datastructure.tree.binarytree 順序儲存二叉樹 1。順序儲存二叉樹通常只考慮完全二叉樹 2。第n個元素的左子節點為2 n 1 3。第n個元素的右子節點為2 n 2 4。第n個元素的父親節點為 n 1 2 public class sequentia...