棧 佇列及其應用 實驗題

2021-10-02 02:39:50 字數 2615 閱讀 7760

1. 完成下面的棧類qstack,使用其中的雙佇列實現入棧、出棧等基本運算

template

class qstack : public stack

~qstack()

//完成下列函式的**

void clear()

void push(const e& it)

e pop()

const e& topvalue() const

virtual int length() const

};2. 設1,2,…,n依次入棧qstack, 判斷由這n個整數構成的整數序列是否為有效的出棧順序。同時我們限定棧中只能儲存k個整數(0#include

#include

#define defaultsize 14

#define assert(a,b) assert((a)&&(b))

using

namespace std;

//**************定義佇列

template

<

typename e>

class

queue

queue

(const queue&

)//拷貝建構函式

public

:queue()

virtual

~queue()

virtual

void

clear()

=0;virtual

void

enqueue

(const e&)=

0;virtual e dequeue()

=0;virtual

const e&

frontvalue()

=0;virtual

intlength()

=0;}

;template

<

typename e>

class

aqueue

:public queue

~aqueue()

void

clear()

void

enqueue

(const e& it)

e dequeue()

const e&

frontvalue()

const e&

rearvalue()

virtual

intlength()

};//**************定義棧

template

<

typename e>

class

stack

stack

(const stack&

)public

:stack()

virtual

~stack()

virtual

void

clear()

=0;virtual

void

push

(const e& it)=0

;virtual e pop()

=0;virtual

const e&

topvalue()

=0;virtual

intlength()

=0;}

;template

<

typename e>

class

qstack

:public stack

~qstack()

void

clear()

//兩個佇列互相轉換除隊尾的全部元素,隊尾元素相當於棧頂,對棧頂進行操作

void

push

(const e& it)

else qb.

enqueue

(it);}

e pop()

return qa.

dequeue()

;}else

return qb.

dequeue()

;}}//哪個佇列長,所有元素就在哪個佇列裡面

const e&

topvalue()

virtual

intlength()

void

validate

(int n)

int odnr=1;

//記錄原順序1,2,……,n

while

(odnr<=n)

else

else}}

}//序列比較

for(

int i=

1;i<=

length()

;i++)}

}//倘若能執行完整個迴圈(對1~n),則此序列正確

cout<<

't'<

return;}

};intmain()

}}測試資料:

實驗4 棧和佇列的基本操作實現及其應用 鏈棧

1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。1 自己確定結點的具體資料型別和問題規模 分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。分別建立乙個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。2 設計演算法並寫出 實現乙個十將二進位制轉...

實驗三 棧和佇列的基本操作實現及其應用

一 實驗目的 1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。二 實驗內容 1 自己確定結點的具體資料型別和問題規模 分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。分別建立乙個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。2 設計演算法並...

實驗4 棧和佇列的基本操作實現及其應用

1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。1 自己確定結點的具體資料型別和問題規模 分別建立乙個順序棧和鏈棧,實現棧的壓棧和出棧操作。三 源程式 五 實驗心得 棧特點就是先進後出 後進先出 從乙個口進去,從同乙個口出去。棧是限定僅在尾...