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

2021-10-02 03:21:26 字數 900 閱讀 2331

從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列,看一下示意圖

順序儲存二叉樹的特點

(1)順序儲存二叉樹通常只考慮完全二叉樹

(2)第n個元素的左子節點為2n+1

(3)第n個元素的右子節點為2n+2

(4)第n個元素的父節點為(n-1)/2

其中:n表示二叉樹中的第幾個元素(按0開始編號),如上圖所示

現需求:

package com.self.datastructure.binarytree;

public class arraybinarytreedemo ;

arraybinarytree binarytree = new arraybinarytree(array);

binarytree.preorder();

}}class arraybinarytree

//過載preorder

public void preorder()

/** 前序遍歷

* @param index 陣列的下標

*/public void preorder(int index)

system.out.println(arr[index]);

if((index * 2 + 1) < arr.length)

if((index * 2 + 1) < arr.length)}}

順序二叉樹的應用例項:八大排序演算法中的堆排序,就會使用到順序儲存二叉樹,關於堆排序,博主在樹結構實際應用中講解

思考:用中序,後序遍歷方式實現前面的**.

資料結構 順序儲存二叉樹

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

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

二叉樹的儲存結構可以分為兩種 在上篇文章 資料結構 樹 二叉樹及四種遍歷解析實現 使用鏈式儲存二叉樹,這篇完成順序儲存 以陣列的方式存放二叉樹,要完成4種遍歷方式,需要陣列與樹結點存在對應關係 順序儲存二叉樹的特點 n表示陣列的下標,對應二叉樹的第幾個元素 如2,是陣列下標1,左子結點為2 1 1 ...

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

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