顺序栈(Visual Studio实现)
2023-06-13 09:15:16 时间
顺序栈(Visual Studio开发环境)
一、栈的顺序存储结构
利用顺序存储方式实现的栈称为顺序栈。类似于顺序表的定义,栈中的数据元素用一个预设的足够长度的一维数组来实现:datatype data[MAXSIZE],栈底位置可以设置在数组的任一个断点,而栈顶是随着插入和删除而变化的,用一个 int top来作为栈顶的指针,指明当前栈顶的位置,同样将data和top封装在一个结构中 通常将0下标端设为栈底,这样空栈时栈顶指针为-1,入栈时,栈顶指针加1,即s->top++,出栈时,栈顶指针减1,即s->top–.
二、代码实现
stack.h头文件
#pragma once
# define MAXSIZE 100
typedef int datatype;
typedef struct
{
datatype data[MAXSIZE];
int top; //栈顶指针
}SeqStack;
//置空栈
SeqStack *Init_SeqStack()
{
SeqStack *s;
s =(SeqStack *) malloc(sizeof(SeqStack));
s->top = -1;
return s;
}
//判空
int Empty_SeqStack(SeqStack *s)
{
if (s->top == -1) {
return 1;
}
else {
return 0;
}
}
//入栈
int Push_SeqStack(SeqStack *s, datatype x) {
if (s->top == MAXSIZE - 1) {//栈满不能入栈
return 0;
}
else {
s->top++;
s->data[s->top] = x;
return 1;
}
}
//出栈
int Pop_SeqStack(SeqStack *s, datatype *x) {
if (Empty_SeqStack(s)) {
return 0;//栈空不能出栈
}else {
*x = s->data[s->top];
s->top--;
return 1;
}
}
//取栈顶元素
datatype Top_SeqStack(SeqStack *s) {
if (Empty_SeqStack(s)) {//栈空
return 0;
}
else {
return (s->data[s->top]);
}
}
源文件:
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include "stack.h"
int main() {
SeqStack *stack1;
int x,x1;
stack1 = Init_SeqStack();
//入栈10个元素
for (int i = 0; i < 10; i++) {
Push_SeqStack(stack1, i + 1);
}
x1 = Top_SeqStack(stack1);
printf("栈顶的数据元素为:%d\n", x1);
//全部出栈的顺序
while (!Empty_SeqStack(stack1)) {
Pop_SeqStack(stack1, &x);
printf("%d ", x);
}
system("pause");
return 0;
}
三、运行结果
相关文章
- visual studio运行程序的快捷键_visual studio快捷方式在哪
- Visual Studio Code Macv1.71.0中文版
- 串口助手(简洁版)上位机软件零基础教程( C# + visual studio2017 )(二)
- .NET 7.0 Preview 6、.NET 6.0.7、.NET Core 3.1.27 和 Visual Studio 2022 17.3 预览版也发布了
- Visual Studio Code 个人配置备份
- Visual Studio Code——做嵌入式C/C++开发常用的编辑器软件安装及基本使用总结
- Visual Studio——使用多字节字符集与使用Unicode字符集
- Visual Studio 配置 Halcon C++ 运行环境
- Visual Studio中C++关于Unicode字符集和多字节字符集
- Visual Studio创建简单MFC工程
- Visual Studio Code window环境下快捷键大全
- Visual Studio 即时窗口实用技巧
- Visual Studio 2022软件下载和安装教程
- Visual Studio 2019软件下载和安装教程
- Visual Studio Code 2022软件下载和安装教程
- C++矩阵库Armadillo在Visual Studio中的配置
- Visual Studio 统一代码格式插件 AStyleExtension
- Visual Studio 2010 注册信息修改器
- 最新发布 Visual Studio 2022 速度提升50%
- 【Visual Studio】Visual Studio 2019 创建 Windows 控制台程序 ( 安装 ‘使用 C++ 的桌面开发‘ 组件 | 创建并运行 Windows 控制台程序 )
- 【C 语言】动态库封装与设计 ( Windows 动态库简介 | Visual Studio 调用动态库 )
- 初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
- 比较:Visual Studio 与MySQL 链接(vs链接mysql)
- 最佳Mac开发者 微软推出针对M1芯片优化过的Visual Studio Code稳定版
- VisualC++中MFC消息的分类