資料結構 佇列的三種實現方式

2021-09-10 01:56:44 字數 2962 閱讀 1097

佇列是一種只在一端插入(隊尾),另一端刪除(隊首)的有序線性表,佇列中第乙個插入的元素也是第乙個被刪除的元素,所以,佇列是一種先進先出(fifo)線性表。

1)主要操作

2)輔助操作

1)基於簡單迴圈陣列的實現

package datastructure;

public

class

arrayqueue

boolean

isempty()

boolean

isfull()

intsize()

void

addqueue

(int value)

rear =

++rear % size;

items++

; a[rear]

= value;

}int

delqueue()

items--

;// front = ++front % size;

// return a[front];

return a[front++

% size];}

intpeek()

return a[front];}

intpoll()

return a[rear];}

void

dispaly()

int item = front;

for(

int i =

0; i <

size()

; i++

) system.out.

println()

;}public

static

void

main

(string[

] args)

}

2)基於動態迴圈陣列的實現

package datastructure;

public

class

dynarrayqueue

void

doublearray()

boolean

isempty()

boolean

isfull()

intsize()

void

addqueue

(int value)

rear =

++rear % size;

items++

; a[rear]

= value;

}int

delqueue()

items--

;// front = ++front % size;

// return a[front];

return a[front++

% size];}

intpeek()

return a[front];}

intpoll()

return a[rear];}

void

dispaly()

int item = front;

for(

int i =

0; i <

size()

; i++

) system.out.

println()

;}public

static

void

main

(string[

] args)

}

3)基於鍊錶的實現

package datastructure;

class

queuenode

public t getdata()

public

void

setdata

(t data)

public queuenode

getnext()

public

void

setnext

(queuenode

next)

@override

public string tostring()

}public

class

llqueue

intsize()

return count;

}boolean

isempty()

void

addqueue

(t data)

else}

queuenode

removequeue()

if(front == rear)

return front = rear = null;

queuenode

del = front;

front = front.

getnext()

;return del;}

queuenode

peek()

queuenode

poll()

void

display()

queuenode

cur = front;

while

(cur != null)

system.out.

println()

;}public

static

void

main

(string[

] args)

}

json三種實現方式

size large 使用ajax的開發專案過程中,經常需要將json格式的字串返回到前端,前端解析成js物件 json ecma 262 e3 中沒有將json概念寫到標準中,還好在 ecma 262 e5 中json的概念被正式引入了,包括全域性的json物件和date的tojson方法。1,e...

cmdb實現三種方式

為什麼要做cmdb?1 實現運維自動化,cmdb是實現運維自動化的基石 2 之前做資產統計的時候,使用execl來統計,為了年底資產審計方便 3 運維日常工作繁瑣,4 執行環境不統一 agent方式實現 agent方式,可以將伺服器上面的agent程式作為定時任務,定時將資產資訊提交到指定api錄入...

https實現三種方式

單個ecs,新增網域名稱證書 公網 私有 並新增跳轉https 負載均衡 upstream web cluster server server web cluster server server 1 公網證書 2.需要slb新增證書,將slb的80埠刪除 3.為slb配置基於https的訪問 4.將...