头文件

Seqstack.h

#define maxsize 6
//const int maxsize = 6;

// 顺序栈

typedef struct seqstack
{
    int data[maxsize];
    int top; // 标志栈顶位置的变量
}SeqStk;

 

main.c

#include <stdio.h>
#include "Seqstack.h"

// 栈的基本运算在顺序栈上的实现
// 1. 初始化
int InitStack(SeqStk *stk)
{
    stk->top = 0;
    return 1;
}
// 2. 判断栈空
int EmptyStack(SeqStk *stk)
{
    if(stk->top == 0) return 1;
    else return 0;
}
// 3.进栈
int Push(SeqStk *stk, int x)
{
    if(stk->top == maxsize - 1)
    {
        printf("栈已满\n");
        return 0;
    }
    else
    {
        stk->data[stk->top] = x;
        stk->top++;
        return 1;
    }
}
// 4. 出栈
int Pop(SeqStk *stk)
{
    if(EmptyStack(stk))
    {
        printf("下溢");
        return 0;
    }
    else
    {
        stk->top--;
        return 1;
    }
}
// 5. 取栈顶元素
int GetTop(SeqStk *stk)
{
    if(EmptyStack(stk)) return 0;
    else return stk->data[stk->top];
}

main()
{
    SeqStk stk;
    int i;
    i = InitStack(&stk);
    if(i) printf("初始化成功\n");
    else printf("初始化失败\n");

    Push(&stk, 1);
    Push(&stk, 2);
    Push(&stk, 3);

    for(i = 0;i < 3;i++)
        printf("%d\n", stk.data[i]);

    printf("\n");
}

 

posted on 2017-08-15 09:14  Asina  阅读(3774)  评论(0编辑  收藏  举报