­

c語言實現順序棧

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//順序棧
typedef struct {
    int data[10];
    int top;//用於指向棧頂元素
}sqStack;

//初始化一個空棧
void InitStack(sqStack &S){//需要改變棧內部的值,所以用引用類型
    S.top=-1;//空棧的數組0下標也無元素,所以初始值為-1
}

//判斷空棧
bool EmptyStack(sqStack S){ //直接用傳遞過來的值,所以不用引用類型
    if (S.top==-1){
        printf("此棧為空棧\n");
        return true;
    }
    return false;
}

//入棧
bool PushStack(sqStack &S,int value){
    //需要判斷棧是否滿
    if (S.top==9){
        return false;
    }
    S.data[++S.top]=value;//棧頂指針加1,並將value傳進去
    return true;
}
//遍歷棧中的值
void GetStack(sqStack S){
    for (int i = 0; i <= S.top; ++i) {
        printf("%d\t%d\n",i,S.data[i]);
    }
}

//出棧
bool PopStack(sqStack S){
    //判斷是否是空棧
    if (S.top==-1){
        return false;
    }
    S.top--;
    return true;
}


int main(){
    sqStack s;
    InitStack(s);
    EmptyStack(s);
    PushStack(s,10);
    GetStack(s);
    return 0;
}
Tags: