利用数组实现栈的一些操作

来源:互联网 发布:egd网络黄金交易平台 编辑:程序博客网 时间:2024/05/17 23:52
//Filename:StackArray.cpp//Writed by CaoLichen//本程序利用数组实现栈的各种操作#include<stdio.h>#include<stdlib.h>#define MaxSize 100//数组上限//定义顺序栈类型typedef struct {int data[MaxSize];//int top;//栈顶指针}SArray;//初始化SArray * InitStack(SArray *s){s = (SArray *)malloc(sizeof(SArray));s->top = -1;//栈顶指针初始化为-1return s;//返回栈地址}//进栈void Push(SArray *s, int data){if(s->top == MaxSize-1){printf("栈溢出,进栈失败\n");return;}s->top ++;s->data[s->top] = data;printf("进栈成功!\n");}//出栈void Pop(SArray *s){if(s->top == -1){printf("栈为空,出栈失败");return ;}s->top --;printf("出栈成功\n");}//打印栈void PrintStack(SArray *s){int num = s->top;for(; num > -1; num --){printf("%d ",s->data[num]);}printf("\n打印栈成功!\n");}//销毁栈void ClearStack(SArray *s){free(s);}//求栈的长度int LengthStack(SArray *s){return(s->top + 1);}int main(){SArray *s;s = NULL;s = InitStack(s);//初始化int i;for(i = 0; i < 20; i ++){Push(s,i);PrintStack(s);}for(i = 0; i < 20; i ++){Pop(s);PrintStack(s);}ClearStack(s);return 0;}

0 0
原创粉丝点击