实现顺序栈的各种基本运算的算法

【C++】【数据结构】顺序栈的基本操作(初始化、入栈、出栈、取栈顶元素、遍历输出栈)的算法实现附全代码 使用c++完成数据结构顺序栈的基本操作,包括(初始化、入栈、出栈、取栈顶元素、遍历输出栈等),可直接编译运行。 阅读详情
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef char ElemType;
typedef struct
{
	ElemType data[MaxSize];
	int top;
} SqStack;

/*
	1.初始化栈InitStack(&s),该运算创建一个空栈,由s指向它
实际上就是分配一个顺序栈空间,并将栈顶指针设置为-1
*/ 
void InitStack(SqStack *&s)
{
	s=(SqStack *)malloc(sizeof(SqStack));
	s->top=-1;
}

//2.销毁栈DestroyStack(&s) 
void DestroyStack(SqStack *&s)
{
	free(s);
}

//3.判断栈是否为空 StackEmpty(s) 
bool StackEmpty(SqStack *s)
{
	return (s->top == -1);
}

//4.进栈Push(&s,e) 
bool Push(SqStack *&s,ElemType e)
{
	if(s->top==MaxSize-1) //栈满的情况,即栈上溢出 
		return false;
	s->top++;
	s->data[s->top]=e;
	return true; 
} 

/*
	5.出栈Pop(&s,&e),先将栈顶指针top处的元素取出放在e中
然后将栈顶指针减1。 
*/ 
bool Pop(SqStack *&s,ElemType &e)
{
	if(s->top==MaxSize-1)
		return false;
	e=s->data[s->top];
	s->top--;
	return true;
} 

//6.取栈顶元素GetTop(s,&e)
bool GetTop(SqStack *s,ElemType &e)
{
	if(s->top == -1)
		return false;
	e=s->data[s->top];
	return true;
} 
int main()
{
	ElemType e;
	SqStack *s;
	printf("(1)初始化栈s\n");
	InitStack(s);
	printf("(2)判断栈s是否非空:%s\n",(StackEmpty(s)? "是":"否"));
	printf("(3)依次进栈元素a、b、c、d、e\n");
	Push(s,'a');
	Push(s,'b');
	Push(s,'c');
	Push(s,'d');
	Push(s,'e');
	printf("(4)判断栈s是否非空:%s\n",((StackEmpty(s))? "是":"否"));
	printf("(5)输出出栈序列");
	while(!StackEmpty(s))  //相当于StackEmpty() != NULL 
	{
		Pop(s,e);
		printf("%c ",e);
	}
	printf("\n");
	printf("(6)判断栈s是否非空:%s\n",((StackEmpty(s))? "是":"否"));
	GetTop(s,e);
	printf("(7)取栈顶元素:%c\n",e);
	printf("(8)释放栈");
	DestroyStack(s); 
	return 0; 
} 
顺序栈各种基本运算算法的实现 栈中数据用数组储存,通过top(),push(),pop()基本的函数用以实现其功能。 参见博客:http://blog.youkuaiyun.com/xiaowei_cqu/article/details/7748152 立即下载

相关推荐

Android Geckoview实战:5分钟搞定JS与原生交互(附完整Demo代码)

本文详细介绍了在Android应用中使用GeckoView替代系统WebView,构建稳定高效的JavaScript与原生代码交互桥梁的实战方法。通过WebExtension架构,文章提供了从环境配置、扩展开发到Android端集成的完整步骤,并附有可运行的Demo代码,帮助开发者快速解决混合应用中的兼容性问题。

u5v6w7的博客 936

实现顺序栈各种基本运算的算法

/** * 实验题目: * 实现顺序栈各种基本运算的算法 * 实验内容: * 编写程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能: * (1)初始化栈s * (2)判断栈s是否非空 * (3)依次进栈元素a,b,c,d,e * (4)判断栈s是否非空 * (5)输出栈长度 * (6)输出从栈顶到栈...

xiezhi123456的博客 6575

pi-star图形界面安装指南

pi-star图形界面安装指南,MMDVM热点安装,树莓派3B+热点

blueisman的专栏 1909

实现顺序栈的各种基本运算的算法_[C++]使用顺序栈算法的基本数据实现判断回文...

1.结果展示:入栈/出栈2.结果展示:队列问题(其中 一:0 表示 队列1无成员)项目1代码:#include#include#define MAXSIZE 10#define ElemType int //元素数据类型typedef struct{ElemType *base;ElemType *top;int stacksize;}SqStack;int main(){SqStack s;in...

weixin_39892615的博客 259

专栏二十:如何选择你的单细胞亚群的分辨率--ROGUE

ROGUE这是继chooseR后第二个计算单细胞亚群分辨率的内容,其实关于代码的运行很简单,网上已经有不少教程,重复这些就没意思了,这里主要是结合探讨一下这个算法。

m0_58549466的博客 981

工业相机的检测原理课件(建议收藏)

本课件为各位工程师详细介绍了工业相机的视觉检测原理 ,旨在为工程师调试工业相机的视觉检测原理时提供理论性指导。

Bamboo265925的博客 498

实现顺序栈的各种基本运算的算法C语言,实现顺序栈的各种基本运算的算法

试编写一个算法,让两个顺序栈共用一个数组stack[N]试编写一个算法,让两个顺序栈共用一个数组stack[N],分别实现入栈\出栈操要2个栈公用一个存储空间看来栈顶指针只能从两端开始了(和队列有点像) 设2个栈为s0,s1 ,s1初始的栈顶指针为-1,s2的初始栈顶指针为N typedef struct { elemtype stack[N]; //栈存储空间 int top[2]; //top...

weixin_36017951的博客 2860

YOLOv11 模型剪枝实战:深入解析通道剪枝与层剪枝的策略与实现(含环境配置、微调技巧与部署测试)

YOLOv11模型剪枝技术通过移除冗余参数和结构来压缩模型,主要包括通道剪枝和层剪枝两种方法。通道剪枝通过评估批量归一化层的缩放因子γ确定通道重要性,移除不重要的特征通道;层剪枝则直接删除整个网络层或模块。剪枝流程包括评估重要性、移除冗余成分、微调模型和评估性能四个步骤。该技术可显著降低模型计算量和参数量,适合在资源受限设备上部署高性能目标检测模型。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1960

实现顺序栈各种基本运算算法

//SeqStack.htypedef char ElemType; #define MaxSize 100 typedef struct { ElemType data[MaxSize]; int top; }SeqStack; // 初始化栈 extern void InitStack(SeqStack *s); // 销毁栈 extern void DestroyStack(Se

fjqlldg的专栏 7987

第十五章数据管理成熟度评估【6’】(DAMA-CDGA 2022年以后历年模拟题真题汇总,基本包含所有考点。)

第十五章数据管理成熟度评估【6’】(DAMA-CDGA 2022年以后历年模拟题真题汇总,基本包含所有考点。)

JasonH2021的博客 405

一个 ABAP 工具,能打印系统里某个用户对 BSP 应用的浏览历史记录

只要一个用户在 SAP ABAP 系统里浏览过 BSP 页面,会留下浏览历史记录。本工具会解析出这些记录,打印出该用户浏览的历史事件,和浏览过的页面名称。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 546

实现顺序栈的各种基本运算的算法C语言,实验3.1实现顺序栈各种基本运算的算法.doc...

实验3.1实现顺序栈各种基本运算的算法实验1.实验目的(1)掌握的定义、的方法及基本操作。(2)掌握将算法在VC++6.0语言环境下实现。(1)复习的定义,掌握的方法及操作。(2)复习C语言中数组及结构体的概念、定义方式。(3)实验的计算机中安装了Microsoft VC++ 6.0。编写一个控制台#include #include #define MaxSize 100typedef char...

weixin_42718924的博客 2080

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

实现顺序栈的各种基本运算的算法_算法与数据结构(五) 栈和队列

? 工欲善其事,必先利其器。栈和队列 - Stack And Queue栈如何理解栈呢?后进者先出,先进者后出,这就是典型的 "栈" 结构。04_栈和队列-栈结构从栈的操作特性上来看,栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。事实上,从功能上来说,数组或者链表确实都可以替代栈,但你要知道,特定的数据结构是对特定场景的抽象,而且,数组或链表暴漏了太多的操作接口,操作上的确灵...

weixin_35706991的博客 1500

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

实现链栈的各种基本运算的算法c语言,顺序栈和链栈结构及实现

一、目的领会顺序栈存储结构和掌握顺序栈中各种基本运算算法设计;领会链栈存储结构和掌握链栈中各种基本运算算法设计。二、内容编写一个程序sqstack.cpp,实现顺序栈(假设栈中元素类型ElemType为char)的各种基本运算,并在此基础上设计一个程序exp3-1.cpp,完成如下功能:(1) 初始化栈s(2) 判断栈s是否非空(3) 依次进栈元素a、b、c、d、e(4) 判断栈s是否非空(5) ...

weixin_39624733的博客 2943

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

李春葆 上机实验题3——实验题1∶实现顺序栈的各种基本运算的算法

编写及实现顺序栈的定义及基本操作函数编写一个程序实现顺序栈(假设栈的基本元素类型为char)的各种基本运算,并在此基础上设计一个程序完成下述功能。:你可以使用Push函数将一些元素(例如'a', 'b', 'c', 'd', 'e')推入栈中,并使用StackLength函数检查栈的长度。:你可以使用Pop函数从栈顶弹出一个元素,并使用GetTop函数获取并显示当前栈顶的元素。:使用StackEmpty函数检查初始化后的栈是否为空。(2)判断栈s是否非空。(4)判断栈s是否非空。(6)判断栈s是否非空。

此人很懒 1360

实现顺序栈的各种基本运算的算法_栈的基本概念-栈顺序实现

栈:是运算受限的线性表,这种线性表上的插入和删除运算限定在表的某一端进行。 允许进行插入和删除的一端称为栈顶,另一端称为栈低。 不含任何数据元素的栈称为空栈,处于栈顶位置的数据元素称为栈顶元素。栈的修改原则是后进先出(Last In First Out ),因此,栈又称为后进先出线性表栈的基本运算:(1)初始化InitStack(S):构造一个空栈S:(2) 判栈空EmptyStack(S):若栈...

weixin_28323057的博客 3077

实现顺序栈各种基本运算的算法(单指针版)(c++)

代码支持实现初始化、栈空、栈满、取栈顶、进栈、出栈。 代码分为2部分,一个函数部分,一个主函数。 函数部分 #include<stdio.h> #include<malloc.h> #define maxsize 100 typedef struct { char data[maxsize]; int top; }sqstack; void init(sqstack *&s) { s=(sqstack *)malloc(sizeof(sqstack));

王陈锋的博客 2490
上一篇: 直接插入排序(straight insertion sort)
下一篇: 单链表递增排序算法
Pikepika
博客等级 码龄7年 95粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值