顺序栈的操作
程序员文章站
2022-05-12 16:30:21
...
//顺序栈的操作
#include <iostream>
#include <stdio.h>
#include <malloc.h>
#define maxsize 50
using namespace std;
typedef struct{
int data[maxsize];
int top;
}SqStack;
//初始化栈
void init(SqStack *s){
s->top=-1;
}
//判断栈是否为空
bool isempty(SqStack *s){
if(s->top==-1)
return true;
else
return false;
}
//判断栈是否已满
bool isfull(SqStack *s){
if(s->top==maxsize-1)
return true;
else
return false;
}
//入栈
void push(SqStack *s,int elem){
if(!isfull(s)){
s->top++;
s->data[s->top]=elem;
}
else
printf("栈满!\n");
}
//出栈
void pop(SqStack *s){
if(!isempty(s)){
s->top--;
}
else
printf("栈空\n");
}
//取栈顶元素
int top(SqStack *s){
if(!isempty(s)){
return s->data[s->top];
}
else
printf("栈空\n");
}
//销毁栈
void destroy(SqStack *s){
s->top==-1;
}
int main()
{
SqStack p;
SqStack *s;
s=&p;
printf("-------初始化栈------\n");
init(s);
printf("---------入栈--------\n");
for(int i=0;i<10;i++){
push(s,i);
}
printf("------取栈顶元素------\n");
printf("%d \n",top(s));
printf("--------出栈---------\n");
for(int j=0;j<12;j++){
pop(s);
}
push(s,1);
printf("%d \n",top(s));
}
上一篇: 性能优化专题一--启动优化(黑白屏、traceView耗时函数定位)
下一篇: 结构体
推荐阅读
-
Smarty的缓存操作技巧
-
有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中 第几个元素的值。如果该数不在数组中,则输出“无此数”。
-
有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”——C语言
-
有15个数按从小到大顺序存放在一个数组中,输入一个数,输出一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。
-
MySQL表修改的实际操作语法描述
-
Win32串口操作的技巧
-
事务操作中几个有意思的概念
-
php-java登录thinksns时的加密解密操作
-
PHP中对数组进行操作的常用函数总结
-
调整输入法的顺序