码迷,mamicode.com
首页 > 其他好文 > 详细

栈简单运用

时间:2015-10-16 16:39:48      阅读:237      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!