資料結構 解析二叉樹的順序儲存

2021-10-07 09:23:58 字數 1385 閱讀 7374

二叉樹的儲存結構可以分為兩種:

在上篇文章:資料結構 - 樹、二叉樹及四種遍歷解析實現

使用鏈式儲存二叉樹,這篇完成順序儲存

以陣列的方式存放二叉樹,要完成4種遍歷方式,需要陣列與樹結點存在對應關係

順序儲存二叉樹的特點

n表示陣列的下標,對應二叉樹的第幾個元素

如2,是陣列下標1,左子結點為2*1+1=3,陣列下標為3的元素4,右子結點為2*1+2=4,陣列下標為4的元素5

當然,葉子結點不存在子結點,即陣列下標越界

使用陣列儲存二叉樹資料

前序遍歷:先輸出當前元素,再遍歷左子樹,最後遍歷右子樹

package com.company.tree;

/** * 順序儲存二叉樹:用陣列儲存二叉樹

*/public

class

arrbinarytreedemo

; arrbinarytree tree =

newarrbinarytree

(arr)

; tree.

preorder()

;}}/**

* 實現順序儲存二叉樹

*/class

arrbinarytree

public

void

preorder()

/** * @param index 陣列的下標

* 順序儲存二叉樹的前序遍歷

*/public

void

preorder

(int index)

//輸出當前元素

system.out.

print

(arr[index]

+" ");

//向左遞迴if(

(index *2+

1)< arr.length)

//向右遞迴if(

(index *2+

2)< arr.length)

}}

二叉樹1,2,3,4,5,6,7前序遍歷結果為1,2,4,5,3,6,7

資料結構 順序儲存二叉樹

include iostream using namespace std define max node size 100 二叉樹的最大節點數 typedef char sqbitree max node size 1 0號單元節點個數 建立二叉樹 void creat tree sqbitree ...

資料結構之順序儲存二叉樹

從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列,看一下示意圖 順序儲存二叉樹的特點 1 順序儲存二叉樹通常只考慮完全二叉樹 2 第n個元素的左子節點為2n 1 3 第n個元素的右子節點為2n 2 4 第n個元素的父節點為 n 1 2 其中 n表示二叉樹...

資料結構 24 順序結構儲存二叉樹堆

pragma once typedef int hpdatatype typedef struct heap heap 用陣列初始化堆 void initheap heap hp,hpdatatype array,int size 初始化乙個空堆 void initemptyheap heap hp...