首页 > 编程语言 > 详细

栈的数组实现

时间:2015-10-28 22:56:32      阅读:324      评论:0      收藏:0      [点我收藏+]

//栈的数组实现

#include <cstdio>
#include <cstdlib>
//#define _OJ_
#define stack_size 100

typedef struct Lnode
{
    int base;
    int top;
    int *elem;
} Lnode, *stack;

stack
creat_list(stack s)
{
    s = (stack) malloc (sizeof(Lnode));
    s->elem = (int*) malloc (stack_size * sizeof(int));
    s->top = s->base = -1;
    return s;
}

int
isEmpty(stack s)
{
    if(s->top == s->pop)
        return 1;
    else
        return 0;
}


void
push(stack s,int x)
{
    if(!isEmpty(s))
    s->elem[++s->top] = x;
}

int
pop(stack s)
{
    if(!isEmpty(s))
    int e;
    e = s->elem[s->top--];
    return e;
}


int main(int argc, char const *argv[]) {
#ifndef _OJ_  //ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
#endif

    int i, n, x;
    stack s;
    s = creat_list(s);
    scanf("%d", &n);
    for(i = 0;i < n; i++) {
    scanf("%d", &x);
    push(s,x);
     }

     for(i = 0;i < n; i++) {
     printf("%d\n", pop(s));
      }

    return 0;
}

栈的数组实现

原文:http://www.cnblogs.com/airfand/p/4918662.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!