1. 程式人生 > >順序棧的基本操作(入棧和出棧)及C語言實現詳解

順序棧的基本操作(入棧和出棧)及C語言實現詳解

,可以理解為遵循“後入先出”原則的線性表,因此棧結構可以採用順序表連結串列實現。

順序棧的實現採用的是順序表,也就是陣列。

順序棧的實現思想是:在陣列中設定一個隨時指向棧頂元素的變數(一般命名為 top ),當 top 的值為 -1 時,說明陣列中沒有資料,即棧中沒有資料元素,為“空棧”;只要資料元素進棧,top 就加 1 ;資料元素出棧, top 就減 1 。

例如,使用順序棧的儲存結構將('a','b','c','d')四個元素逐個壓棧並輸出棧頂元素。

實現程式碼:
#include <stdio.h>
//元素elem進棧
int push(char* a,int top,char elem){
    a[++top]=elem;
    return top;
}
//資料元素出棧
int pop(char * a,int top){
    if (top==-1) {
        printf("空棧");
        return -1;
    }
    printf("彈棧元素:%c\n",a[top]);
    top--;
    return top;
}
int main() {
    char a[100];
    int top=-1;
    top=push(a, top, 'a');
    top=push(a, top, 'b');
    top=push(a, top, 'c');
    top=push(a, top, 'd');
    top=pop(a, top);
    top=pop(a, top);
    top=pop(a, top);
    top=pop(a, top);
    top=pop(a, top);
    return 0;
}
輸出結果: 彈棧元素:d
彈棧元素:c
彈棧元素:b
彈棧元素:a
空棧