物件導向的資料結構 棧和佇列

2021-07-12 01:46:34 字數 1438 閱讀 1060

stack棧

棧(statck)這種資料結構在計算機中是相當出名的。棧中的資料是先進後出的(first in last out, filo)。棧只有乙個出口,允許新增元素(只能在棧頂上增加)、移出元素(只能移出棧頂元素)、取得棧頂元素等操作。在stl中,棧是以別的容器作為底部結構,再將介面改變,使之符合棧的特性就可以了。

構造

stack c建立乙個空的stack

stackc1(c2) 複製stack

資料增減

c.top() 返回棧頂元素

c.push(elem) 棧頂新增elem資料

c.pop() 彈出棧頂的資料

其他操作

c.empty() 判斷棧是否為空

c.size() 返回棧中的資料個數

單向佇列

queue單向佇列與棧有點類似,乙個是在同一端訪問資料,另乙個是在一端存入資料,另一端取出資料。單向佇列中的資料是先進先出(first in first out,fifo)。在stl中,單向佇列也是以別的容器作為底部結構,再將介面改變,使之符合單向佇列的特性就可以了。因此實現也是非常方便的。

構造

queuec 建立乙個空的queue

queuec1(c2) 複製queue

資料訪問與增減

c.front() 返回佇列頭部資料

c.back() 返回佇列尾部資料

c.push(elem) 在佇列尾部增加elem資料

c.pop() 佇列頭部資料彈出

其他操作

c.empty() 判斷佇列是否為空

c.size() 返回佇列中資料的個數

#include

#include

#include

using

namespace

std;

int main()

s.push(x);

x%=2*d;

q.push('b'+x);

while(!q.empty())

cout

cout

0;}

在螢幕上輸出棧頂到棧底的元素,且輸出後仍然保持初始狀態

template

void stacktransfer(stack

s,stack

d)}

雙向對列

deque雙向佇列是一種雙向開口的連續線性空間,可以高效的在頭尾兩端插入和刪除元素,deque在介面上和vector非常相似

資料結構 棧和佇列

棧 基礎 知識棧 練習題 佇列 基礎知識 棧示意圖 後進先出 順序棧結構定義 define maxsize 1024 struct stack 操作函式 push 入棧 pop 出棧 struct lstack 鏈棧示意圖 操作函式 push 入棧 pop 出棧 注意 也可以直接呼叫系統已經寫好的庫...

資料結構 棧和佇列

本章的基本內容是 兩種特殊的線性表 棧和佇列 從資料結構角度看,棧和佇列是操作受限的線性表,他們的邏輯結構相同。從抽象資料型別角度看,棧和佇列是兩種重要的抽象資料型別。p棧 限定僅在表的一端進行插入和刪除操作的線性表。p允許插入和刪除的一端稱為棧頂,另一端稱為棧底。p空棧 不含任何資料元素的棧。a ...

資料結構 棧和佇列

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。class solution int pop node stack2.top stack2.pop return node private stack stack1 stack stack2 大家都知道斐波那契數列,現...