數組棧
完成int IsEmpty(Stack S)函數,該函數判斷棧是否已空,如果空返回1,否則返回0。
完成int IsFull(Stack S)函數,該函數判斷棧是否已滿,如果滿返回1,否則返回0。
typedef int ElemType;struct StackRecord;typedef struct StackRecord *Stack;struct StackRecord{ int Capacity; //棧容量 int Top; //棧頂,初始為1 ElemType *Array;};int IsEmpty(Stack S){ if(S‐>Top==‐1) { return 1; } else { return 0; }}int IsFull(Stack S){ if(S‐>Top==S‐>Capacity‐1) { return 1; } else { return 0; }}
鏈棧
完成int IsEmpty(Stack S);函數,該函數判斷棧S是否為空白,空棧返回1,否則返回0,已知S是帶頭結點的鏈棧。
typedef int ElemType;struct Node;typedef struct Node * PtrToNode;typedef PtrToNode Stack;struct Node{ ElemType data; PtrToNode next;};int IsEmpty(Stack S){ return S‐>next==NULL?1:0;}
數組隊列
完成int IsEmpty(Queue Q);函數,該函數判斷隊列Q是否已空,如果已空返回1,否則返回0,其中Q是基於數組的非迴圈隊列。
完成int IsFull(Queue Q)函數,該函數判斷隊列Q是否已滿,如果已滿返回1,否則返回0,其中Q是基於數組的非迴圈隊列。
typedef int ElemType;struct QueueRecord;typedef struct QueueRecord * Queue;struct QueueRecord{ int Capacity; //隊列總容量 int Front; //隊首 初始值為0 int Rear; //隊尾,初始值為1 int Size; //隊列中資料數,初始值為0 ElemType *Array;};int IsEmpty(Queue Q){ return Q‐>Size==0;}int IsFull(Queue Q){ return Q‐>Rear==Q‐>Capacity‐1?1:0;}
鏈隊列
完成int IsEmpty(Queue q)函數,該函數判定基於鏈表的隊列q是否為空白,空隊列返回1,非空隊列返回0,其中q是不帶前端節點的鏈表隊列。
typedef int ElemType;struct node;typedef struct node Node;struct queue;typedef struct queue * Queue;struct node{ ElemType data; Node * next;};struct queue{ Node * front; //隊首 Node * rear; //隊尾 int size; //隊列中資料數};int IsEmpty(Queue q){ return q‐>size==0?1:0;}