C++数据结构04--顺序栈的实现
头文件:
typedef struct{SElemtype data[MAXSIZE]; //存放的数据int top; //指向栈顶的指针
}SqStack;class StackClass
{
public:StackClass();~StackClass();SqStack* InitStack();bool DestroyStack(SqStack *S);bool ClearStack(SqStack*S);bool IsEmptyStack(SqStack*S);//判断是否为空栈SElemtype GetTop(SqStack*S);//返回栈顶元素bool PushData(SqStack * S,SElemtype e); //入栈bool PopData(SqStack * S,SElemtype* e);//出栈int GetStackLength(SqStack * S);//返回栈的个数}
实现cpp文件:
//入栈操作
bool StackClass::PushData(SqStack * S,SElemtype e)
{//判断是否栈已经满了if (S->top == MAXSIZE - 1){cout << "栈已经满了,无法继续入栈!" << endl;return false;}S->top ++;S->data[S->top] = e;return true;
}//出栈操作
bool StackClass::PopData(SqStack * S,SElemtype* e)
{//首先判断是否为空栈if (S->top == -1){return false;}*e = S->data[S->top];S->top--; //移动栈顶指针的位置就可以了return true;
}//求栈的长度
int StackClass::GetStackLength(SqStack * S)
{int cur_length = S->top + 1;return cur_length;
}//判断是否为空栈
bool StackClass::IsEmptyStack(SqStack*S)
{int top = S->top;if (top == -1){return true;}return false;
}//返回栈顶元素
SElemtype StackClass::GetTop(SqStack*S){//返回栈顶元素if (S->top == -1){cout << "当前为空栈" << endl;return 0;}return S->data[S->top];
}//清空栈
bool StackClass::ClearStack(SqStack*S)
{S->top =-1; //将数据清空return true;
}//初始化栈
SqStack* StackClass::InitStack()
{SqStack * S;S->top = -1;return S;
}//销毁栈
bool StackClass::DestroyStack(SqStack *S)
{delete S;return true;
}
C++数据结构04--顺序栈的实现相关推荐
- 数据结构 创建顺序栈
3.27数据结构--创建顺序栈 结构体定义 初始化栈 入栈 出栈 销毁栈 运行结果截图: 代码: /*3.27 顺序栈*/#define _CRT_SECURE_NO_WARNINGS #define ...
- 数据结构遍历顺序栈_数据结构:顺序栈的实现
数据结构:顺序栈的实现 1.快速开始 栈是一种遵循元素后进(Push)先出(Pop)规则的线性表,即最后加入的元素最先出来,它的实现可以用数组或者链表. 它的特点如下: 后入先出,先入后出. 除了头尾 ...
- 数据结构遍历顺序栈_链栈的初始化与遍历
初始化 我们在定义完一个数据结构的结构体之后,需要初始化才能使用.比如顺序栈的初始化,也就是构造一个空栈就行了.那么链栈如何初始化呢? 链栈初始化的目标也是要构造一个空栈.根据结构体定义,空栈是什么一 ...
- PHP/Golang实现—数据结构之顺序栈
客官,留下你的赞:成为我的粉丝,一起上车哦!评论区欢迎你的留言 重温数据结构.相关代码集放在GitHub上,欢迎Star.Fork和一起加入.目前只有PHP版本:后续会增加Golang版本,后续会不断 ...
- 【C++】【数据结构】顺序栈的基本操作(初始化、入栈、出栈、取栈顶元素、遍历输出栈)的算法实现附全代码
C++实现顺序栈的算法+步骤(附全代码): 使用c++完成数据结构顺序栈的基本操作,包括(初始化.入栈.出栈.取栈顶元素.遍历输出栈等),可直接编译运行. 顺序栈的定义如下: #define MAXS ...
- 数据结构_顺序栈的代码实践
#include <iostream> using namespace std; #define Maxsize 100//预先分配空间,这个数值根据实际情况预估确定 typedef st ...
- 【数据结构】顺序栈的实现(C语言)
栈的基本概念及其描述 栈是一种特殊的线性表,规定它的插入运算和删除运算均在线性表的同一端进行,进行插入操作和删除操作的那一端称为栈顶,另一端称为栈底. 栈的插入操作和删除操作分别称为进栈和出栈. FI ...
- 【数据结构】顺序栈与链表栈
顺序栈 头文件 1 //@ author 成鹏致远 2 //@ net http://infodown.tap.cn 3 //@ qq 552158509 4 //@ blog lcw.cnblogs ...
- 数据结构之顺序栈的一些基本操作
** 顺序栈可以用一个一维数组和一个记录栈顶位置的整形变量来实现,数组用于顺序存储栈中所有的数据元素,栈顶指针用于存储栈顶元素的位置. ** 头文件(Sqstack.h): #ifndef __SQS ...
- 数据结构之 顺序栈、共享栈、链栈
顺序栈.共享栈.链栈 一.思维导图: 二.栈的定义: 三.栈的特点: 四.栈的基本操作: 五.常考题型: 六.顺序栈: 1.思维导图: 2.顺序栈基本操作的实现: 1.定义栈: 2. 初始化栈:Ini ...
最新文章
- java+enum+devicetype_Java HmDatapoint.isNumberType方法代碼示例
- STM32开发 -- 4G模块开发详解(1)
- Redis(零):背景
- 国外问答网站Quora数据的爬虫 Java
- linux基础(十一)--系统初始化的简谈
- 数据库知识与技巧日常汇总
- Ubuntu安装sasquatch时执行./build.sh报错:--no-check-certificate
- 达梦数据库可视化工具的使用
- 每天做好一件事,坦然微笑地面对生活
- 西安省某小学能耗监测及电力监控系统的研究与应用
- 乔巴机器人 番外篇_乔巴机器人五只合体图+10个小乔巴+【附合体动图】
- Ae 入门系列之八:抠像
- python tableau_Tableau集成Python机器学习实践(下)
- (HBuilder X) 从下载HBuilderX到生成app.apk
- ios11修改微信步数_iOS逆向之“修改微信运动步数”
- 创建新Docker容器时出现“The container name “/xxx“ is already in use by container xxxxxxxxxxx...”问题的解决办法
- SAP FI 系列 (030) - 特别总账标记
- 网络摄像机产品介绍以及学习
- matlab 求留数,用matlab求留数
- NEO-M8T+千寻基站+RTKNAVI进行RTK定位
热门文章
- 用 Nginx 禁止国外 IP 访问我的网站....
- JVM超神之路:年后跳槽需要的JVM知识点,周末给你整理了一份!!!
- Parallels Desktop虚拟机Centos系统安装后联网以及互通宿主机
- 【docker】查看docker镜像的版本号TAG,从远程仓库拉取自己想要版本的镜像
- WPFのDecorator 、Adorner和AdornerDecorator
- HDU 5972 Regular Number
- C语言中结构体内存存储方式
- Net学习日记_ASP.Net_一般处理程序_笔记
- pandas 常用函数整理
- 常用docker命令