用数组实现栈的方法
来源:互联网 发布:qt 4.8.4 windows下载 编辑:程序博客网 时间:2024/06/08 11:31
用数组实现栈与数组实现表的原理一样,删除表的一些功能就是栈了
#include<stdio.h>#include<stdlib.h>int size;typedef int StackItem;typedef struct sstack*Stack;typedef struct sstack{int top;int maxtop;//栈顶位置的最大值StackItem *data;}Sstack;//*******************************//栈的初始化Stack StackInit(int size){Stack S;S=(Stack)malloc(sizeof(Sstack));S->data=(StackItem *)malloc(sizeof(StackItem)*size);S->maxtop=size;S->top=-1; return S;//因为数组第一个数从位置0开始存,所以初始化为-1;}//*******************************//判断栈是否为空int StackEmpty(Stack S){return S->top<0;}//*******************************//判断栈是否为满int StackFull(Stack S){return S->top==S->maxtop;}//*******************************//取栈顶元素StackItem StackTop(Stack S){if(StackEmpty(S)){printf("Stack is empty");exit(0);}else return S->data[S->top];}//*******************************//新元素入栈void Push(StackItem x,Stack S){if(StackFull(S)){printf("Stack is full");exit(0);}elseS->data[++S->top]=x;}//*******************************//删除栈顶元素StackItem Pop(Stack S){if(StackEmpty(S)){printf("Stack is empty");exit(0);}return S->data[S->top--];}int main(){Stack S;size=10;S=StackInit(size);//*******************************//元素入栈printf("元素入栈:\n");for(int i=1;i<=10;i++){Push(i,S);printf("%d ",i);}printf("\n元素出栈:\n");for(i=1;i<=10;i++)printf("%d ",Pop(S));return 0;}
- 用数组实现栈的方法
- 用循环数组实现队列的方法
- c/c++栈与队的数组实现方法
- 自己实现的栈 用数组实现
- 用new实现二位数组的几种方法
- 需要一个1000000的数组实现方法
- javascript数组contain方法的实现
- 字符串动态数组的C实现方法
- Java实现数组反转翻转的方法
- PHP array_slice() 数组分页的实现方法
- 关于数组中排序方法的实现
- 栈的两种实现方法--数组实现与链式实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- 栈的数组实现
- HTML中MARQUEE标签实现文字移动
- Callback机制浅析
- Ubuntu intallation is stuck at vmware tools installation
- 适配iOS7状态栏高度问题
- Sybase重置 sa 密码
- 用数组实现栈的方法
- 添加libxml tree.h需要注意的一点
- Activity加载模式详细笔记
- C++小知识之如何看工程类型
- 【leetcode】Next Permutation
- 警告: 隐式声明与内建函数 ‘exit’ 不兼容--- 解决方案
- OpenMP: OpenMP 环境变量
- ARM 中端口上拉寄存器作用
- 初始化与清理