高考申論題
108年
[電力工程] 計算機概論
第 四 題
四、利用陣列來實作堆疊,給予如下 C 語言的宣告及建立堆疊(create_stack)的程式片段:(20 分)
#define MAX_STACK 100
typedef int ITEM_TYPE;
typedef struct stack_type {
ITEM_TYPE items[MAX_STACK];
int top;
}STACK_TYPE;
void create_stack (STACK_TYPE *stack)
{
stack -> top = 0;
}
在不考慮堆疊滿(Full)及空(Empty)的條件下,請寫出堆疊的 push 及 pop 程式片段;push 程式片段係先輸入新資料後,再移動指標; pop 程式片段係先移動指標後,再取出資料。
void push (STACK_TYPE *stack, ITEM_TYPE new_item)
{
}
void pop (STACK_TYPE *stack, ITEM_TYPE *old_item)
{
}
📝 此題為申論題
思路引導 VIP
考生應先分析 create_stack 中 top = 0 的初始狀態。配合題意『push 先存資料再移指標』,代表資料應存入目前的 top 位置,然後 top 加 1;『pop 先移指標再取資料』則代表 top 需先減 1,再取出該位置的資料。同時需注意 C 語言的結構體指標語法。
🤖
AI 詳解
AI 專屬家教
【破題】本題測驗以陣列(Array)實作堆疊(Stack)的指標(Pointer)操作與 C 語言語法。關鍵在於理解 top 指標的初始狀態以及題幹所要求之動作順序。
【解答】
根據題目要求:
▼ 還有更多解析內容