摘要:試題五(共15分)閱讀下列說明和C代碼,將應填入(n)處的字句寫在答題紙的對應欄內。【說明】棧(Stack)結構是計算機語言實現中的一種重要數據結構。對于任意棧,進行插入和刪除操作的一端稱為棧頂(StackTop),而另一端稱為棧底(StackBottom)。棧的基本操作包:創建棧(NewStack)、判斷棧是否為空(IsEmpty)、判斷棧是否已滿(Is
試題五(共15分)
閱讀下列說明和C代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
棧(Stack)結構是計算機語言實現中的一種重要數據結構。對于任意棧,進行插入和刪除操作的一端稱為棧頂(Stack Top),而另一端稱為棧底(Stack Bottom)。棧的基本操作包:
創建棧(NewStack)、 判斷棧是否為空(IsEmpty)、判斷棧是否已滿(IsFull)、獲取棧頂數據(Top)、壓棧/入棧(Push)、彈棧/出棧(Pop)。
當設計棧的存儲結構時,可以采取多種方式。其中,采用鏈式存儲結構實現的棧中各數據項不必連續存儲(如圖5-1)。
圖 5-1 棧的鏈式存儲結構示意圖
以下C 代碼采用鏈式存儲結構實現一個整數棧操作。
【C代碼】
typedef struct List {
int data; // 棧數據
struct List* next; // 上次入棧的數據地址
}List;
typedef struct Stack {
List* pTop; // 當前棧頂指針
}Stack;
Stack* NewStack() { return (Stack*)calloc(1,sizeof(Stack)); }
int IsEmpty(Stack* S){ //判斷棧S是否為空棧
if((1)) return 1;
return 0;
}
int Top(Stack* S){ //獲取棧頂數據。若棧為空,則返回機器可表示的最小整數
if( IsEmpty(S) ) return INT_MIN;
return (2) ;
}
軟考備考資料免費領取
去領取