第3章棧和佇列

2022-12-26 13:39:06 字數 1121 閱讀 5603

一. 填空題

1. 棧

2. 線性,棧頂,隊尾,隊頭

3. 棧頂,棧底

4. 佇列

5. 先存入元素,後移動棧頂指標

6. 不可能的

7. 2 3 5 4 1 ,100ch

8. s x s s x s x x

9. 陣列

10. hs= =null

11. 前乙個位置

12. 先移動隊首指標,後取出元素

13. n-1

14. (m+1)% n

二. 單項選擇題

三. 判斷題

四. 演算法設計題

1. 解:用一整型變數top表示棧頂指標,top為0時表示棧為空。如果棧不空,則從stack[1]開始存放元素。實現本題功能的函式如下:

入棧演算法:

void push(eletype x)

if((top+length)>n)

printf("上溢位\n");

else

if(top==0) /*為空棧*/

出棧演算法:

void pop(eletype x)

} 2. 解:實現本題功能的函式如下:

void tr**el(queue, int front,rear)3. 解:用乙個迴圈陣列queue[0,n-1]表示該迴圈佇列,頭指標為front,計數器count用來記錄佇列中結點的個數。

入隊演算法如下:

void enqueue(int x)

}出隊演算法如下:

int dequeue()

}4. 解:設表示式在字元陣列a[ ]中,使用一堆疊s來幫助判斷。實現本題功能的函式如下:

int correct(char a)

stack s;

initstack(s);

for(i=0;iif(a[i]=='(')push(s,'(');

else if (a[i]==')')

if(stackempty(s))

return 0;

else

pop(s);

if(stackempty(s))

return 1配對正確*/

else

return 0配對錯誤*/}

第3章棧和佇列

雲南大學資訊學院電腦科學與工程系 資料結構 課後作業 一 選擇題 1.若已知乙個棧的入棧序列是1,2,3,n,其輸出序列為p1,p2,p3,pn,若pn是n,則pi是 a.ib.n i c.n i 1 d.不確定 2.設乙個棧的輸入序列是 1,2,3,4,5,則下列序列中,是棧的合法輸出序列的是 a...

資料結構1800試題 第3章棧和佇列答案

第三章棧和佇列 一 選擇題 二 判斷題 部分答案解釋如下。1 尾遞迴的消除就不需用棧 2 這個數是前序序列為1,2,3,n,所能得到的不相似的二叉樹的數目。三 填空題 1 操作受限 或限定僅在表尾進行插入和刪除操作 後進先出 2 棧 3 3 1 2 4 23 100ch 5 0 n 1 top 1 ...

資料結構第3章棧與佇列習題

9 設n個元素進棧序列是p1,p2,pn,其輸出序列是1,2,3,n,若p3 1,則p1的值 a 可能是2 b 一定是1 c 不可能是2 d 不可能是3 10 設n個元素進棧序列是p1,p2,pn,其輸出序列是1,2,3,n,若p3 3,則p1的值 a 可能是2 b 一定是2 c 不可能是1 d 一...