顺序栈

来源:互联网 发布:qq影像官方下载 mac 编辑:程序博客网 时间:2024/06/05 11:10

代码

#include <stdio.h>#include <stdlib.h>#define STACK_INIT_SIZE 100#define OK 0#define ERROR -1typedef struct{        int* stackdata;        int top;        int stacksize;}SeqStack;int InitStack(SeqStack* S){        if(!S) return ERROR;        S->stackdata = (int*)malloc(sizeof(int)*STACK_INIT_SIZE);        if(!S->stackdata) return ERROR;        S->top = 0;        S->stacksize = STACK_INIT_SIZE;        return OK;}int push(SeqStack* S,int element){        if(S->top == S->stacksize) return ERROR;        S->stackdata[S->top++] = element;}int pop(SeqStack* S,int* element){        if(!S) return ERROR;        if(S->top == 0) return ERROR;        *element = S->stackdata[--S->top];        return OK;}void travelstack(SeqStack* S){        int i = 0;        for(i = 0 ; i < S->top; ++i)        {                printf("%d\n",S->stackdata[i]);        }}int main(void){        SeqStack S;        int* e;        int initres = InitStack(&S);        if(ERROR == initres) return ERROR;        push(&S,1);        push(&S,2);        push(&S,3);        pop(&S,e);        travelstack(&S);        return OK;}

输出

stack