标签:
读入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