顺序栈的实现(c语言)
来源:互联网 发布:手机网络卡是怎么回事 编辑:程序博客网 时间:2024/05/01 18:26
一、定义:栈是限定尽在一端插入或删除操作的线性表。“后进先出(LIFO)”。
二、习惯上称栈的可访问元素为站栈顶(top)元素,元素插入栈称为入栈(push),删除元素称为出栈(pop)。
三、顺序栈:
l 顺序栈在建立栈的时候必须说明一个固定长度。
l 当栈中有n个元素时把位置n-1作为栈顶,Top位置不存放值。
l 实现如下:
#include<stdio.h>#define MAXSIZE 100
typedef char datatype;
typedef struct
{
datatype S[MAXSIZE];
int top;
} SeqStack;
SeqStack ST;
datatype x;
void push(SeqStack *ST,datatype x);//压入栈中
char pop(SeqStack *ST);//出栈
int stackEmpty(SeqStack ST);//判断栈是否为空
void clearStack(SeqStack *ST);//清空栈
datatype getTop(SeqStack *ST);//获取栈顶元素
int main()
{
clearStack(&ST);
int i;
datatype y;
printf("请输入1个元素压入栈中:\n");
scanf("%c",&y);
push(&ST,y);
if(!stackEmpty(ST))
{
printf("栈非空!表明压入了元素!\n");
}
else
{
printf("为空栈!\n");
}
datatype z;
z=getTop(&ST);
printf("栈顶元素为:%c\n",z);
z=pop(&ST);
printf("弹出 的元素为:%c\n",z);
if(!stackEmpty(ST))
{
printf("栈非空!\n");
}
else
{
printf("为空栈!\n");
}
}
void push(SeqStack *ST,datatype x)
{
printf("此时栈顶%d\n",ST->top);
if(ST->top>=MAXSIZE-1)
{
printf("overflow");
}
else
{
ST->S[++ST->top]=x;
}
}
datatype pop(SeqStack *ST)
{
printf("此时栈顶为%d",ST->top);
if(ST->top==-1)
{
printf("underflow!");
}
else
{
return x=ST->S[ST->top--];
}
}
int stackEmpty(SeqStack ST)
{
if(ST.top==-1)
return 1;
else return 0;
}
void clearStack(SeqStack *ST)
{
ST->top=-1;
}
datatype getTop(SeqStack *ST)
{
if(ST->top==-1)
{
printf("该栈为空!");
}
else
{
return ST->S[ST->top];
}
}
运行结果如下图:
阅读全文
1 0
- 顺序栈的实现(C语言)
- 顺序栈的实现(C语言)
- 顺序栈的实现(c语言)
- 顺序栈的C语言实现
- 顺序栈的实现(C语言)
- 顺序栈的C语言实现
- 顺序栈的实现C语言
- 顺序栈的C语言实现
- <数据结构>顺序栈的C语言实现
- 顺序栈的C语言实现
- 动态顺序栈的C语言实现!
- 顺序栈的c语言实现
- c语言:顺序栈的实现
- 顺序表的实现(C语言)
- 顺序表的实现(C语言)
- 栈的c语言实现(顺序存储)。。。2014.5.9
- 数据结构--顺序栈的实现(C语言)
- 数据结构--顺序栈实现(c语言)
- 一种基于FreeRTOS的CPU使用率测算方法及原理介绍
- QQ启动时:Initialization failure:0x0000000C 解决方案
- nginx负载均衡简单配置
- CTS Verifier:Widget Framework Test如何测试?
- Oracle使用——PLSQL的中文乱码、特别注意!
- 顺序栈的实现(c语言)
- Android Studio 开发快捷键大全
- CoreData 如新如故
- PHP面试题汇总
- android设备局域网中快速搜索之cling方式
- react-redux学习笔记-2-react-redux
- Spring Aop源码学习--Advisor切面
- Spark1.6 java7 scala+java.lang.UnsupportedClassVersionError
- Windows 设置CMD命令行编码