棧和佇列總結

2021-10-09 23:55:29 字數 2395 閱讀 9523

佇列:只允許在一端進行插入資料操作,在另一端進行刪除資料操作的特殊線性表,佇列具有先進先出fifo(first in first out) 入佇列:進行插入操作的一端稱為隊尾(tail/rear) 出佇列:進行刪除操作的一端稱為隊頭。

:一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧中的資料元素遵守後進先出lifo(last in first out)的原則。壓棧:棧的插入操作叫做進棧/壓棧/入棧,入資料在棧頂。出棧:棧的刪除操作叫做出棧。出資料在棧頂。

deque(雙端佇列)中常見方法

public

inte***ce

deque

extends

queue

}default integer getfirst()

return e;

}default integer removefirst()

return e;

}default

void

addlast

(integer e)

}default integer getlast()

return e;

}default integer removelast()

return e;

}// 這組方法,繼承自 queue

// 特殊值

default

boolean

offer

(integer e)

default integer peek()

default integer poll()

// 下面這組方法為棧的形態準備,還包括上面的 peek 方法

default

void

push

(integer e)

default integer pop()

}

這些方法通過linkedlist類來實現deque介面

public

class

linkedlist

implements

deque

}private node head;

private node tail;

private

int size;

@override

public

boolean

offerfirst

(integer e)

else

size++

;return

true;}

@override

public integer peekfirst()

return head.v;

}@override

public integer pollfirst()

integer e = head.v;

head = head.next;

if(head != null)

else

size--

;return e;

}@override

public

boolean

offerlast

(integer e)

else

size++

;return

true;}

@override

public integer peeklast()

return tail.v;

}@override

public integer polllast()

integer e = tail.v;

tail = tail.prev;

if(tail != null)

else

size--

;return e;

}}

linkedlist與deque,queque,三者之間的關係:linkedlist是實現類,繼承了deque介面,而deque介面繼承了queque介面,因此linkedlist是實現類要重寫介面中的方法。

queque(佇列)介面中的方法:

public

inte***ce

queue

return

true;}

default integer element()

return e;

}default integer remove()

return e;

}}

棧和佇列總結

使用標準庫的棧 include 標頭檔案 stacks 定義乙個 int 型的棧 s.empty 如果棧為空返回true,否則返回false s.size 返回棧中元素的個數 s.pop 刪除棧頂元素但不返回其值 s.top 返回棧頂的元素,但不刪除該元素 s.push 在棧頂壓入新元素 使用標準庫...

棧和佇列總結

棧佇列 特點後進先出 先進先出 定義stackstack new stack queuequeue new linkedlist 入s.push q.offer 出s.pop 同時返回棧頂元素 q.poll 同時返回隊頭元素 頂s.peek q.peek 佇列頭部元素 注意 在佇列中 add 和re...

棧和佇列總結

棧繼承自vector,stack只有乙個空參構造方法,因此想往其中新增元素只能使用方法push 常用方法如下 public e push e item 入棧 public e pop 出棧 public e peek 檢視棧頂元素 public boolean empty 是否為空 注意在使用棧時,...