資料結構(java語言描述) 堆

2021-08-20 18:34:11 字數 1493 閱讀 1460

堆是一棵完全二叉樹,堆的每個父節點的值都大於等於子節點的值。

或者

我們用陣列來儲存二叉樹。

public class maxheap

extends comparable>

public

maxheap()

public

maxheap(e arr)

// 返回堆中的元素個數

public int

size()

// 返回乙個布林值

, 表示堆中是否為空

public boolean

isempty()

// 返回完全二叉樹的陣列表示中,乙個索引所表示的元素的父親節點的索引

private int

parent(int index)

// 返回完全二叉樹的陣列表示中,乙個索引所表示的元素的左孩子節點的索引

private int

leftchild(int index)

// 返回完全二叉樹的陣列表示中,乙個索引所表示的元素的右孩子節點的索引

private int

rightchild(int index)

// 向堆中新增元素

public void

add(e e)

private void

siftup(int k)

}//

看堆中的最大元素

public

e findmax()

// 取出堆中最大元素

public

e extractmax()

private void

siftdown(int k)

}//

取出堆中的最大元素,並且替換成元素

epublic

e replace(e e)

}

可以在網上了解一下siftdown和siftup。

基於堆的優先佇列

public class priorityqueue

extends comparable> implements queue

@override

public int

getsize()

@override

public boolean

isempty()

@override

public

e getfront()

@override

public void

enqueue(e e)

@override

public

e dequeue()

}

java資料結構 堆

1.由於用陣列來模擬堆的資料存放比較方便,且陣列0號位置作為哨兵 package com.jzm.heapmap public class maxheap public maxheap int size end constructor public boolean isempty 判斷是否為空 pu...

物件導向語言系列 資料結構(Java描述)

基本資料型別 atomic data type 結構型資料型別 structure data type 抽象資料型別 abstract data type,adt 傳統程式設計的方法 由下而上的設計 由上而下的設計 由下而上 自下而上的設計 先編寫整個程式需求中最容易的部分,再逐步擴大來完成。由上而...

資料結構(基於java語言描述) 動態陣列

話不多說,讓我們先上 注 構建陣列所儲存的元素可能為string integer等不同的型別,所以我們有必要設定乙個泛型,讓陣列可以容納我們呼叫時所規定的資料型別。public class array 無參建構函式,預設陣列容量為 10public array 現在可以忽略,在之後的堆的描述中我會講...