從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列,
順序儲存二叉樹的特點
順序二叉樹通常只考慮完全二叉樹
第n個元素的左子節點為2*n+1
第n個元素的右子節點為2*n+2
第n個元素的父節點為(n-1)/ 2
n:表示二叉樹中的第幾個元素(按о開始編號如圖所示)
需求:給你乙個陣列,要求以二叉樹前序遍歷的方式進行遍歷。
package tree;
public
class
arrbinarytreedemo
;//建立乙個 arrbinarytree
arrbinarytree arrbinarytree =
newarrbinarytree
(arr)
; arrbinarytree.
preorder()
;// 1,2,4,5,3,6,7}}
//編寫乙個arraybinarytree, 實現順序儲存二叉樹遍歷
class
arrbinarytree
//過載preorder
public
void
preorder()
//編寫乙個方法,完成順序儲存二叉樹的前序遍歷
/** *
* @param index 陣列的下標
*/public
void
preorder
(int index)
//輸出當前這個元素
system.out.
println
(arr[index]);
//向左遞迴遍歷if(
(index *2+
1)< arr.length)
//向右遞迴遍歷if(
資料結構與演算法學習筆記
演算法基礎篇 第一章 演算法概述 首先了解一下基本的概念 1.1 什麼是演算法呢?從字面意義上理解,演算法就是用於計算的方法,用這種方法達到預期的結果。通俗的講,演算法可以理解為乙個完整的解題步驟,由一些基本的運算和規定的運算順序組成。通過這樣的解題步驟可以解決特定的問題。演算法可以抽象出5個特徵 ...
資料結構與演算法學習筆記(一)
資料 計算機操作的物件 資料元素 組成資料的基本基本單位 資料項 乙個資料元素可以由若干個資料項組成 資料物件 性質相同的資料元素的集合 資料結構 是相互之間存在一種或多種特定關係的資料元素的集合 資料型別 1.原子型別 不可以在分解的基本型別,包括整型,字元型 2.結構型別 由若干個型別組合而成 ...
資料結構與演算法學習筆記3
最好情況時間複雜度 最壞情況時間複雜度 平均情況時間複雜度 均攤時間複雜度 例 在乙個無序的陣列 array 中,查詢變數 x 出現的位置。如果沒有找到,就返回 1 n表示陣列array的長度 intfind int array,int n,int x return pos 時間複雜度 o n nn...