顺序栈

xiaoxiao2021-02-27  753

#include<stdio.h> #define MAXSIZE 100 typedef struct{ int data[MAXSIZE]; int top; }Stack; //初始化栈 void InitStack(Stack *s); //判栈是否为空 int Empty(Stack *s); //返回栈顶元素 int Top(Stack *s); //删除栈顶 void Pop(Stack *s); //入栈 void Push(Stack *s, int e); //清空栈 void Clear(Stack *s); void InitStack(Stack *s){ s->top = -1; } int Empty(Stack *s){ if (s->top == -1){ return 0; } return 1; } int Top(Stack *s){ if (Empty(s) == 1){ return s->data[s->top]; } return -1; } void Pop(Stack *s){ if (Empty(s) == 1){ s->top--; } } void Push(Stack *s, int e){ s->data[++s->top] = e; } void Clear(Stack *s){ s->top = -1; } int main() { Stack s; InitStack(&s); if(Empty(&s) == 1) { printf("栈有值\n"); } else{ printf("栈 空\n"); } for (int i=0; i<10; i++) { Push(&s, i); } Pop(&s); printf("栈顶元素为:%d",Top(&s)); Clear(&s); return 0; }
转载请注明原文地址: https://www.6miu.com/read-748.html

最新回复(0)