首页 > 其他 > 详细

栈简单运用

时间:2015-10-16 16:38:54      阅读:122      评论:0      收藏:0      [点我收藏+]

读入n个整数

定义栈数据类型

定义栈的初始化、判空、判满、入栈、出栈函数

写一主函数,完成n个数的读入和逆序输出

#include<stdio.h>
#define stacksize 100
#define OK 1
#define ERROR 0
#define Overflow -1
typedef int Status;
typedef int ElemType;
typedef struct
{
    ElemType data[stacksize];
    int top;
}SeqStack;
//定义栈数据类型

void InitStack(SeqStack &s)
{
    s.top = 0;
}
//栈的初始化

int StackEmpty(SeqStack s)
{
    return (s.top == 0);
}
//判断栈空

int StackFull(SeqStack s)
{
    return (s.top == stacksize);
}
//判断栈满

Status Push(SeqStack &s, ElemType x)
{
    if(StackFull(s))
        return Overflow;
    s.data[s.top++] = x;
    return OK;
}
//入栈

Status Pop(SeqStack &s, ElemType &e)
{
    if(StackEmpty(s))
        return Overflow;
    e = s.data[--s.top];
    return OK;
}
//出栈

Status GetTop(SeqStack s, ElemType &e)
{
    if(StackEmpty(s))
        return Overflow;
    e = s.data[s.top - 1];
    return OK;
}
//取栈顶元素

void StackTravel(SeqStack s)
{
    int i;
    for(i = 0 ; i < s.top ; i++)
        printf("%d ", s.data[i]);
}
//遍历,显示栈中元素

int main()
{
    int i, n, d;
    SeqStack s1;
    InitStack(s1);
    scanf("%d", &n);
    for(i = 0 ; i < n ; i++)
    {
        scanf("%d", &d);
        Push(s1, d);
    }
    StackTravel(s1);
    printf("\n");
    GetTop(s1, d);
    printf("栈顶元素是%d\n", d);
    Pop(s1, d);
    printf("出栈元素是%d\n", d);
    StackTravel(s1);
    printf("\n");
    return 0;
}

 

栈简单运用

原文:http://www.cnblogs.com/qq2424260747/p/4885480.html

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