Chinaunix首页 | 论坛 | 博客
  • 博客访问: 702328
  • 博文数量: 152
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1793
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 12:26
个人简介

相信自己,只有不想做的,没有做不到的。

文章分类

全部博文(152)

文章存档

2021年(1)

2015年(2)

2014年(74)

2013年(75)

分类: LINUX

2013-10-27 21:21:21

#include
#include


#define MAX 10


typedef int DATATYPE;


//栈的结构体
typedef struct
{
//存放栈中元素
DATATYPE buf[MAX];
//记录栈顶的位置
int top;
}SeqStack;

//创建一个空栈
SeqStack *create_empty_stack()
{
SeqStack *s;
s = (SeqStack *)malloc(sizeof(SeqStack));

s->top = -1;
return s;
}

//判断这个栈是不是一个空栈
int is_empty_stack(SeqStack *s)
{
return s->top == -1 ? 1 : 0;
}

//判断栈是不是为蛮栈
int is_full_stack(SeqStack *s)
{
return s->top == MAX - 1 ? 1 : 0;
}

//数据插入栈中
int push_stack(SeqStack *s,DATATYPE data)
{
if(is_full_stack(s))
{
printf("The SeqStack is full.\n");
return -1;
}

s->top ++;
s->buf[s->top] = data;

return 0;
}

//输入栈中的元素
DATATYPE pop_stack(SeqStack *s)
{
DATATYPE data;

//保存栈顶的值
data = s->buf[s->top];

s->top --;


return data;
}

//获得栈顶的元素
DATATYPE get_top_stack(SeqStack *s)
{
return s->buf[s->top];
}

//主函数    实现 创建栈 插入栈元素  输出栈元素
int main(int argc, const char *argv[])
{
int i = 0;
SeqStack *s = create_empty_stack();

while(!is_full_stack(s))
{
push_stack(s,++i);
    }
printf("stack top data:%d.\n",get_top_stack(s));


while(!is_empty_stack(s))

    {
        
printf("%d ",pop_stack(s));
}
printf("\n");


return 0;
}

阅读(588) | 评论(0) | 转发(0) |
0

上一篇:单向链表的实现

下一篇:顺序队列的是新

给主人留下些什么吧!~~