資料結構 自定義佇列

2022-08-23 12:06:14 字數 1992 閱讀 3926

用鍊錶建立佇列

public

class linkqueueimplements queue

public

node(e e)

public

node()

@override

public

string tostring()

}private

node head;

private

node tail;

private

intsize;

public

linkqueue()

@override

public

intgetsize()

@override

public

boolean

isempty()

@override

public

e dequeue()

node node =head;

head =head.next;

node.next = null; //

將隊首取出

if(head == null) tail = null

; size --;

return

node.e;

}@override

public

e getfront()

@override

public

void

enqueue(e e)

else

}}

用陣列建立迴圈佇列

需要注意的是:

a.尾指標一直指向null,即指向最後乙個元素的後乙個元素 (極大作用的維護迴圈佇列的迴圈),這樣來需要維護實際空間大小和需要建立、擴容的大小之間的關係

b.新增元素:先將需要新增的元素e 新增到·尾指標指向的陣列data[tail] 中,然後tail指標繼續+1;

c.判斷是否需要擴容、縮容,由於tail指向最後乙個元素的後乙個位置,只需要在入隊判斷(tail+1)%(陣列長度)是否會等於頭指標  。

public

class loopqueueimplements queue

public

intgetcapacity()

@override

public

intgetsize()

@override

public

boolean

isempty()

@override

public

e dequeue()

e ret =data[front];

data[front] = null

; front = (front+1) %data.length;

size --;

if(size == getcapacity() / 4 && getcapacity() /2 !=0)

return

ret;

}@override

public

e getfront()

@override

public

void

enqueue(e e)

else

tail++;

data[tail] = e;

size++;

*///

1。擴容

if ((tail+1)%data.length ==front)

data[tail] =e;

tail = (tail+1)/data.length;

size ++;

}private

void resize(int

newcapacity)

data =newdata;

tail =size ;

front = 0;

}}

scala資料結構 二 自定義迴圈佇列

佇列是乙個有序列表,可以用陣列或鍊錶實現,先進先出原則,即 先存入佇列的資料,要先取出。後存入的要後取出 迴圈佇列需要3個引數,head,tail,count 1.在佇列初始化的時候,head以及tail都為0 2.count用來記錄佇列中元素的個數 package com.zyd import s...

自定義資料結構(棧 佇列) 括號匹配

第二題 括號匹配 滿足如下條件的字串稱為括號匹配的字串 1.空字串是括號匹配的字串。2.若a是括號匹配的串,則 a a 是括號匹配的字串。3.若a b是括號匹配的字串,則ab也是括號匹配的字串。例如 都是括號匹配的字串,而 則不是。現在對於輸入的字串,判斷它是否是括號匹配的字串。輸入一行,為乙個僅由...

自定義資料結構 MyHashMap

size medium 在學習了資料結構hashmap之後,自己也定義了乙個myhashmap,下面來解析一下myhashmap。size size x large 1 實質為乙個陣列 size size medium 我定義的myhashmap中所使用的資料結構是乙個陣列,資料都儲存在這個陣列中。...