用鍊錶建立佇列
publicclass 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)%(陣列長度)是否會等於頭指標 。
publicclass 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中所使用的資料結構是乙個陣列,資料都儲存在這個陣列中。...