顺序栈的介绍及实现

1 栈

从数据结构角度来讲,栈也是线性表,其操作是线性表操作的子集,属操作受限的线性表。
但从数据类型的角度看,它们是和线性表大不相同的重要抽象数据类型。

◆ 栈是只准在一端进行插入和删除操作的线性表,该端称为栈的顶端。

栈顶(Top):线性表允许插入和删除的一端
栈底(Bottom):固定的,不允许进行插入和删除的一端

2 栈的基本操作

从栈顶删除最后一个元素的操作,称为出栈。
插入元素到栈顶的操作,称为入栈。

对于向上生成的堆栈:

入栈口诀:堆栈指针top先压后加” : S[top++]=x
出栈口诀:堆栈指针top先减后弹” : e=S[--top]

top==-1 为空则栈空
top==maxsize-1为真则栈满

3 顺序栈代码实现

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE (20)typedef int ElementType;
typedef struct SqStack {ElementType data[MAXSIZE];int top;
} *Stack;Stack InitStack(void)    //初始化栈
{Stack s = (Stack)malloc(sizeof(struct SqStack));s->top = -1;return s;
}void Push(Stack s, ElementType e)  //压栈,将元素e插入到栈S中,作为S的新栈顶
{if (s->top == MAXSIZE - 1) {  //栈满return;}s->top++;s->data[s->top] = e;
}void Pop(Stack s, ElementType *e)  //出栈,若栈S不为空,则删除栈顶元素
{if (s->top == -1) {    //栈空return;}*e = s->data[s->top];s->top--;
}void PrtStack(Stack s)
{for (int i = 0; i <= s->top; i++) {printf("%d ", s->data[i]);}printf("\n");
}int main(void)
{ElementType e;Stack s = InitStack();PrtStack(s);printf("please input a element :");scanf("%d", &e);Push(s, e);PrtStack(s);Pop(s, &e);printf("Pop a element : %d", e);return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内排序算法一览

文章目录1 插入排序2 希尔&#xff08;shell&#xff09;排序3 冒泡排序4 快速排序5 选择排序6 堆排序7 归并排序8 内排序代码一览运行结果常用排序算法时间复杂度和空间复杂度一览表排序&#xff1a;将一组杂乱无章的数据按一定的规律顺次排列起来,可以看作是线性表的一种操作…

Nature:神经元在大脑中的起点并不一定是它们的终点

来源&#xff1a;生物通虽然人体有30亿个DNA碱基和超过30万亿细胞&#xff0c;格里森和他的同事们发现只有几百DNA突变可能出现在头几个细胞分裂后的受精胚胎或在大脑的早期发展。通过在死者的大脑中跟踪这些突变&#xff0c;他们第一次能够重建人类大脑的发育。胎儿大脑的发育…

扎克伯格Meta元宇宙被质疑:年均烧百亿美元,货要等十年

来源&#xff1a;新智元公司内部业务混乱、公司外部观感酷似曾经的雅虎&#xff0c;这些与扎克伯格的元宇宙发力结合在一起&#xff0c;让Meta的新老员工都怨声载道。不少Meta的员工&#xff0c;现在都在抱怨老板的元宇宙项目顾头不顾腚、在公司内部徒增业务困扰但并无法带来收…

链栈的介绍与实现

文章目录1 链栈定义2 链栈基本操作3 链栈代码实现1 链栈定义 链栈&#xff1a;采用链式存储的栈称为链栈 在一个链栈中&#xff0c;栈底就是链表的最后一个结点&#xff0c;而栈顶总是链表的第一个结点。因此&#xff0c;新入栈的元素即为链表新的第一个结点&#xff0c;只要…

栈与递归

文章目录1 递归的概念2 递归算法3 递归数据结构4 递归实现5 递归与循环差别1 递归的概念 递归是指在定义自身的同时又出现了对自身的调用。如果一个函数在其定义体内直接调用自己&#xff0c;则称直接递归函数&#xff1b;如果一个函数经过一系列的中间调用语句&#xff0c;通过…

马斯克与推特达成收购协议 专家警告称这一步迈得过大

来源&#xff1a;网易智能4月26日消息&#xff0c;当地时间周一&#xff0c;在特斯拉首席执行官埃隆马斯克&#xff08;Elon Musk&#xff09;敲定将以440亿美元的价格收购个人社交媒体平台推特后&#xff0c;特斯拉股价盘中一度下跌超2%&#xff0c;最终收于每股998.02美元&am…

循环队列的介绍与实现

文章目录1 循环队列定义2 循环队列基本操作3 循环队列代码实现4 补充1 循环队列定义 循环队列&#xff1a;即顺序存储的队列&#xff0c;是为了避免“假溢出”而利用%运算符将队列首尾相接连成一个环状的队列&#xff0c;称为循环队列。 引入循环队列克服顺序队列中存在的“假…

5年内开炸第一颗小行星,改变其轨道!中国计划建立小行星预警监测系统

来源&#xff1a;大数据文摘不知道多少科幻片中&#xff0c;小行星成为了人类灭绝的罪魁祸首。在超高的速度加持下&#xff0c;直径只有十几公里的小行星撞击地球&#xff0c;都有可能造成人类毁灭。为了提前预警这样的事件发生&#xff0c;人类做出了不少努力。美国航天局NASA…

算术逻辑单元设计

文章目录1 基本逻辑符号1.1 ALU1.2 逻辑符号1.3 复合逻辑2 加法器设计2.1 一位加法器2.2 进位产生原理2.2 多位二进制位加法器1 基本逻辑符号 1.1 ALU ALU功能&#xff1a; 算术运算&#xff1a;加、减、乘、除等 逻辑运算&#xff1a;与、或、非、异或等 辅助功能&#xff1a…

数字孪生城市框架与全球实践洞察(2022)

来源 &#xff1a; 世界经济论坛编辑 &#xff1a;蒲蒲全球数字孪生市场蓬勃发展。据预测&#xff0c;到2030年&#xff0c;数字孪生技术的应用将为城市规划、建设、运营节省成本达到2800亿美元。市场规模方面&#xff0c;2020年全球数字孪生市场规模为31亿美元&#xff0c;预计…

2 计算机组成原理第二章 数据的表示和运算 定点数运算 浮点数运算

文章目录1 进制转换2 定点数表示及其运算2.1 定点数表示2.1.1 真值→补码2.1.2 补码→真值2.1.3 [XT]补 →[-XT]补2.1.4 真值、原码、反码、补码转换关系图形总结2.2.4 移码2.2 定点数运算2.2.1 移位运算2.2.2 定点数加减运算2.2.3 溢出判断判溢出方法一判溢出方法二判溢出方法…

Gartner:AI和自动化将是新一代SASE的关键能力

来源&#xff1a;安全内参近年来&#xff0c;安全访问服务边缘&#xff08;SASE&#xff09;技术快速发展&#xff0c;得到了较广泛的行业应用。SASE架构通常包括了SD-WAN、FWaaS、安全Web网关、云访问安全代理&#xff08;CASB&#xff09;和零信任网络访问&#xff08;ZTNA&a…

MIPS指令与MIPS汇编语言

文章目录1 MIPS简介2 MIPS指令系统的特点3 MIPS寄存器4 MIPS指令格式4.1 R-Type型指令4.2 l-Type型指令4.3 J-Type型指令4.4 三类指令小结5 MIPS例题6 MIPS过程调用6.1 过程调用和栈6.2 MIPS中栈的实现6.3 栈帧的概念6.4 MIPS中的过程调用&#xff08;假定P调用Q&#xff09;6.…

DeepMind爆发史:决定AI高峰的“游戏玩家”|深度学习崛起十年

来源&#xff1a;OneFlow社区翻译&#xff1a;刘晓祯、沈佳丽、胡燕君、许晨阳、周亚坤很少有人会否认&#xff0c;过去十年&#xff0c;AI领域最耀眼的明星组织当属DeepMind&#xff0c;没有之一。那个震动世界的高光时刻发生在2016年3月的一天&#xff0c;AI选手AlphaGo击败了…

链队的介绍与实现

文章目录1 链队定义2 链队基本操作3 代码实现1 链队定义 队列的链式存储结构简称为链队列&#xff0c;它是限制仅在表头删除和表尾插入的单链表。显然仅有单链表的头指针不便于在表尾做插入操作&#xff0c;为此再增加一个尾指针&#xff0c;指向链表上的最后一个结点。 type…

二叉树介绍与代码实现

文章目录1 树的基本概念1.1 树的形式定义1.2 树的递归定义1.3 树的基本术语1.4 二叉树的递归定义1.5 存储方法1.6 满二叉树VS完全二叉树2 二叉树的性质3 代码实现1 树的基本概念 1.1 树的形式定义 T{D&#xff0c;R} D为树T中包含n个结点的有限集合&#xff0c;R为树中结点之间…

2022先进计算七大趋势

来源&#xff1a;CBInsights 中文编辑&#xff1a;蒲蒲作为智能社会的底座、数字经济的引擎&#xff0c;算力的重要性已经被提到一个前所未有的高度。当下&#xff0c;算力的提升仍然面临着来自多个维度的挑战。不论是硬件层面还是架构层面&#xff0c;算力发展都亟需变革。先进…

类脑计算将何去何从?

来源&#xff1a;内容由半导体行业观察&#xff08;ID&#xff1a;icbank&#xff09;编译&#xff1a;nature.摘要类脑计算新技术有望通过完全不同的方式处理信息&#xff0c;能效极高&#xff0c;并能处理我们加速产生的大量非结构化和嘈杂的数据。为了实现这一承诺&#xff…

1 计算机网络体系结构与OSI参考模型

文章目录1 计算机网络概述1.1 计算机网络概念1.2 计算机网络的分类2 OSI 七层参考模型应用层表示层会话层传输层网络层数据链路层物理层3 OSI参考模型与网络排错4 OSI参考模型与网络安全5 TCP/IP协议和OSI参考模型1 计算机网络概述 1.1 计算机网络概念 计算机网络概念&#xf…

一个故事讲完 CPU 的工作原理

来自&#xff1a;知乎 作者&#xff1a;柳两丛 www.zhihu.com/question/40571490/answer/718942643上二年级的小明正坐在教室里。现在是数学课&#xff0c;下午第一节&#xff0c;窗外的蝉鸣、缓缓旋转的吊扇让同学们昏昏欲睡。此时&#xff0c;刘老师在黑板上写下一个问题&a…