摘要:試題五(共15分)閱讀下列說(shuō)明和C代碼,將應(yīng)填入(n)處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)?!菊f(shuō)明】棧(Stack)結(jié)構(gòu)是計(jì)算機(jī)語(yǔ)言實(shí)現(xiàn)中的一種重要數(shù)據(jù)結(jié)構(gòu)。對(duì)于任意棧,進(jìn)行插入和刪除操作的一端稱(chēng)為棧頂(StackTop),而另一端稱(chēng)為棧底(StackBottom)。棧的基本操作包:創(chuàng)建棧(NewStack)、判斷棧是否為空(IsEmpty)、判斷棧是否已滿(mǎn)(Is
試題五(共15分)
閱讀下列說(shuō)明和C代碼,將應(yīng)填入 (n) 處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
棧(Stack)結(jié)構(gòu)是計(jì)算機(jī)語(yǔ)言實(shí)現(xiàn)中的一種重要數(shù)據(jù)結(jié)構(gòu)。對(duì)于任意棧,進(jìn)行插入和刪除操作的一端稱(chēng)為棧頂(Stack Top),而另一端稱(chēng)為棧底(Stack Bottom)。棧的基本操作包:
創(chuàng)建棧(NewStack)、 判斷棧是否為空(IsEmpty)、判斷棧是否已滿(mǎn)(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) ;
}
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬(wàn)道題
已有25.02萬(wàn)小伙伴參與做題