2008年上半年軟件設(shè)計(jì)師下午試卷II[3]

軟件設(shè)計(jì)師 責(zé)任編輯:xingke518 2008-09-18

添加老師微信

備考咨詢

加我微信

摘要:試題五(共15分)閱讀下列說明和C代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)?!菊f明】棧(Stack)結(jié)構(gòu)是計(jì)算機(jī)語言實(shí)現(xiàn)中的一種重要數(shù)據(jù)結(jié)構(gòu)。對(duì)于任意棧,進(jìn)行插入和刪除操作的一端稱為棧頂(StackTop),而另一端稱為棧底(StackBottom)。棧的基本操作包:創(chuàng)建棧(NewStack)、判斷棧是否為空(IsEmpty)、判斷棧是否已滿(Is

試題五(共15分)

閱讀下列說明和C代碼,將應(yīng)填入 (n) 處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。

【說明】

棧(Stack)結(jié)構(gòu)是計(jì)算機(jī)語言實(shí)現(xiàn)中的一種重要數(shù)據(jù)結(jié)構(gòu)。對(duì)于任意棧,進(jìn)行插入和刪除操作的一端稱為棧頂(Stack Top),而另一端稱為棧底(Stack Bottom)。棧的基本操作包:

創(chuàng)建棧(NewStack)、 判斷棧是否為空(IsEmpty)、判斷棧是否已滿(IsFull)、獲取棧頂數(shù)據(jù)(Top)、壓棧/入棧(Push)、彈棧/出棧(Pop)。

當(dāng)設(shè)計(jì)棧的存儲(chǔ)結(jié)構(gòu)時(shí),可以采取多種方式。其中,采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)實(shí)現(xiàn)的棧中各數(shù)據(jù)項(xiàng)不必連續(xù)存儲(chǔ)(如圖5-1)。

圖 5-1 棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)示意圖

以下C 代碼采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)實(shí)現(xiàn)一個(gè)整數(shù)棧操作。

【C代碼】

typedef struct List {

int data; // 棧數(shù)據(jù)

struct List* next;  // 上次入棧的數(shù)據(jù)地址

}List;

 

typedef struct Stack {

List* pTop;  // 當(dāng)前棧頂指針

}Stack;

 

Stack* NewStack() { return (Stack*)calloc(1,sizeof(Stack)); }

 

int IsEmpty(Stack* S){ //判斷棧S是否為空棧

  if((1)) return 1; 

  return 0; 

}

int Top(Stack* S){ //獲取棧頂數(shù)據(jù)。若棧為空,則返回機(jī)器可表示的最小整數(shù)

if( IsEmpty(S) ) return INT_MIN;

  return  (2)  ; 

}

[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

軟考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

!
咨詢?cè)诰€老師!