数据结构---C语言栈队列

知识点:

栈:

只允许在一端进行插入或删除操作的线性表,先进后出LIFO
类似一摞书,按顺序拿,先放的书只能最后拿;
顺序栈:栈的顺序存储
typedef struct{Elemtype data[50];int top;
}SqStack;
SqStack S;

基本操作:(使用数组实现栈--》顺序栈)

#define MaxSize 50
typedef int ElemType;
//顺序栈
typedef struct{ElemType data[MaxSize];int top;
}SqStack;
//初始化栈 
void InitStack(SqStack &S){S.top=-1;
}
//判空 
bool StackEmpty(SqStack &S){if(S.top==-1)return true;return false;
}
//入栈
bool Push(SqStack &S,ElemType x){if(S.top==MaxSize-1) return false;//栈满S.data[++S.top]=x;//S.top++;//S.data[S.top]=x; return true; 
} 
//出栈
bool Pop(SqStack &S,ElemType &x){if(-1==S.top)//栈空 return false;x=S.data[S.top--];//后减减,x=S.data[S.top];S.top=S.top-1;return true;
}
//读取栈顶元素
bool GetTop(SqStack &S,ElemType &x){if(-1==S.top)//说明栈为空return false;x=S.data[S.top];return true;
}
int main(){SqStack S;bool flag;ElemType m;InitStack(S);flag=StackEmpty(S);if(flag){printf("kong");} Push(S,3);Push(S,4);flag=GetTop(S,m);if(flag) printf("s[top]==%d",m);flag=Pop(S,m);if(flag) printf("s[top]==%d",m);return 0;
} 




队列(Queue

简称队,也是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向
队列中插入元素称为入队或进队;删除元素称为出队或离队
先进先出 FIFO,其实就是排队打饭的队伍
队头( Front ):允许删除的一端,又称队首。
队尾( Rear ):允许插入的一端。
队列中主要学习循环队列:
循环队列
(Q.rear+1)%MaxSize==Q.front//队满Q.rear==Q.front //队空
//循环队列
#define MaxSize 5;
typedef int ElemType;
typedef struct{ElemType data[MaxSize];//最多存储max-1个,数组从0开始 int front,rear;
}SqQueue;void InitQueue(SqQueue &Q){Q.rear=Q.front=0;
}//判空
bool isEmpty(SqQueue &Q){if(Q.rear==Q.front)//不需要为零return true;return false;
}//入队 尾巴在向后移动
bool EnQueue(SqQueue &Q,ElemType x){if((Q.rear+1)%MaxSize==Q.front) return false;Q.data[Q.rear]=x;Q.rear=(Q.rear+1)%MaxSize;return true;
} //出队 头在向后移动 
bool DeQueue(SqQueue &Q,ElemType &x){if(Q.rear==Q.front)return false;x=Q.data[Q.front];//先进先出Q.front=(Q.front+1)%MaxSize;
return true;
}

 

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

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

相关文章

Java实现自定义Hive认证账户密码

一、业务背景 在搭建好Hive环境后,应用项目远程连接hive需要设置用户名和密码,但hive默认的用户名和密码都是空,因此需要设置自定义用户名和密码。 二、开发步骤 2.1 新建maven项目,pom.xml引入相关依赖,主要是hadoop、…

RabbitMQ 面试题及答案整理,最新面试题

RabbitMQ的核心组件有哪些? RabbitMQ的核心组件包括: 1、生产者(Producer): 生产者是发送消息到RabbitMQ的应用程序。 2、消费者(Consumer): 消费者是接收RabbitMQ消息的应用程序…

计算机网络——计算机网络的性能

计算机网络——计算机网络的性能 速率带宽吞吐量时延时延宽带积往返时间RTT利用率信道利用率网络利用率 我们今天来看看计算机网络的性能。 速率 速率这个很简单,就是数据的传送速率,也称为数据率,或者比特率,单位为bit/s&#…

Midjourney绘图欣赏系列(七)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子,它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同,Midjourney 是自筹资金且闭源的,因此确切了解其幕后内容尚不…

信息安全、网络安全以及数据安全三者之间的区别

随着信息技术的飞速发展,网络安全、信息安全、数据安全等词汇在平时出现的频率越来越高,尤其是数据安全,是大家都关心的一个重要话题。事实上,有很多人对网络安全、信息安全、数据安全的概念是区分不清的,下面由我帮大…

吴恩达深度学习笔记:深度学习引言1.1-1.5

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第一周:深度学习引言(Introduction to Deep Learning)1.1 欢迎(Welcome)1.2 什么是神经网络?(What is a Neural Network)1.3 神经网络的监督学习(Supervised Learning …

【PyQT/Pysider】控件背景渐变

默认渐变配色说明 background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 178, 102, 255), stop:0.55 rgba(235, 148, 61, 255), stop:0.98 rgba(0, 0, 0, 255), stop:1 rgba(0, 0, 0, 0));这段样式表使用了qlineargradient函数来创建…

Dynamic Wallpaper v17.4 mac版 动态视频壁纸 兼容 M1/M2

Dynamic Wallpaper Engine 是一款适用于 Mac 电脑的视频动态壁纸, 告别单调的静态壁纸,拥抱活泼的动态壁纸。内置在线视频素材库,一键下载应用,也可导入本地视频,同时可以将视频设置为您的电脑屏保。 应用介绍 Dynam…

chatgpt与人类有何不同?

ChatGPT和人类之间存在多个显著的差异。 首先,ChatGPT是一种基于人工智能技术的计算机程序,通过机器学习和自然语言处理等技术,从大量的数据中获取知识并生成语言输出。它主要依赖于算法和数据进行工作,能够迅速处理和检索信息&a…

Objective-C blocks 概要

1.block的使用 1.1什么是block? Blocks是C语言的扩充功能:带有自动变量(局部变量)的匿名函数。 “带有自动变量”在Blocks中表现为“截取自动变量" “匿名函数”就是“不带名称的函数” 块,封装了函数调用及调用…

制造行业大数据应用:四大领域驱动产业升级与智慧发展

一、大数据应用:制造行业的智慧引擎 随着大数据技术的不断突破与普及,制造行业正迎来一场前所未有的变革。大数据应用,如同智慧引擎一般,为制造行业注入了新的活力,推动了产业升级与创新发展。 二、大数据应用在制造行…

【DDR】DDR4学习记录

这里以美光DDR4芯片 MT40A512M16HA-075E datasheet 为例,说明DDR4存储器的原理及仿真。   根据开发板手册ug1302,在vcu128(xcvu37p)开发板上,共具有5块DDR4芯片,在数据信号上4块DDR4具有16位数据线&#…

OpenCV实战--人脸识别的三种方法(人脸识别具体到某个人)

1、前言 Opencv 中提供了三种人脸识别的方法,分别是 Eigenfaces、Fisherfaces和LBPH 三种方法都是通过对比样本特征最终实现人脸识别 因为三种算法特征提取的方式不一样,侧重点均有不同,并不能说那种方式优越,这里对三种方法进行讲解和实验 这里类似于深度学习模式,通过…

CSS 弹性盒子模型

CSS3弹性盒内容 弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成弹性容器通过设置display属性的值为flex将其定义为弹性容器弹性容器内包含了一个或多个弹性子元素 温馨提示:弹性容器外及弹性子元素内是正常渲染的。弹性盒子只定义了弹性子元素如何…

记事小本本

记事小本本 实现效果 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</titl…

【Linux进阶之路】HTTP协议

文章目录 一、基本概念1.HTTP2.域名3.默认端口号4.URL 二、请求与响应1.抓包工具2.基本框架3.简易实现3.1 HttpServer3.2 HttpRequest3.2.1 version13.2.2 version23.2.3 version3 总结尾序 一、基本概念 常见的应用层协议&#xff1a; HTTPS (HyperText Transfer Protocol Sec…

DVWA靶场-暴力破解

DVWA是一个适合新手锻炼的靶机&#xff0c;是由PHP/MySQL组成的 Web应用程序&#xff0c;帮助大家了解web应用的攻击手段 DVWA大致能分成以下几个模块&#xff0c;包含了OWASP Top 10大主流漏洞环境。 Brute Force——暴力破解 Command Injection——命令注入 CSRF——跨站请…

JVM内存结构介绍

1. 什么是JVM 我们都知道在 Windows 系统上一个软件包装包是 exe 后缀的&#xff0c;而这个软件包在苹果的 Mac OSX 系统上是无法安装的。类似地&#xff0c;Mac OSX 系统上软件安装包则是 dmg 后缀&#xff0c;同样无法在 Windows 系统上安装。 Java 代码为什么可以在 Windows…

2024年了,SEO优化是不是已经穷途末路了呢?(川圣SEO)蜘蛛池

baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; 2024年了&#xff0c;SEO优化是不是已经穷途末路了呢&#xff1f;#蜘蛛池SEO SEO优化并没有穷途末路。虽然随…

element---tree树形结构(返回的数据与官方的不一样)

项目中要用到属性结构数据&#xff0c;后端返回的数据不是官方默认的数据结构&#xff1a; <el-tree:data"treeData":filter-node-method"filterNode":props"defaultProps"node-click"handleNodeClick"></el-tree>这是文档…