首页/新闻资讯/正文详情

数据结构笔记(C++,栈的基本操作代码)

发布时间:2026/9/24 17:37:16 来源:云帆数科 栏目:资讯中心
数据结构笔记(C++,栈的基本操作代码)
栈特点是先进后出FILO。本质是线性表有两种存储结构顺序栈和链式栈。栈的数学性质Catalan数N)为合法的出栈序列总数量。408必考一个序列合法的判定规则任意出栈序列中每个元素之后所有比它小的元素必须逆序递减出现。顺序栈主要操作两个状态栈空、栈满两个操作:出栈、进栈两个非法状态上溢、下溢1、结构体定义typedef struct{ int data[MaxSize]; int top; }SqStack;2、初始化栈void InitStack(SqStack st){ st.top-1;//将栈顶指针置为-1 }3、清空栈void ClearStack(SqStack st){ st.top-1; }4、销毁栈void DestroyStack(SqStack st){ st.top-1; //若栈是动态分配的free(st.data); }5、判空int isEmpty(SqStack st){ if(st.top-1)return 1; else return 0; }6、判满int isFull(SqStack st){ if(st.topMaxSize-1)return 1; else return 0; }7、求栈长int StackLength(SqStack st){ return st.top1; }8、入栈int Push(SqStack st,int x){ if(st.topMaxSize-1)return 0; (st.top);//先移动指针再元素进栈 st.data[st.top]x; return 1; }9、出栈int Pop(SqStack st,int x){ if(st.top-1)return 0; xst.data[st.top];//先取出元素再移动指针 --(st.top); return 1; }10、取栈顶int GetTop(SqStack st,int x){ if(st.top-1)return 0; xst.data[st.top]; return 1; }说明1、在考试中栈常常作为一个工具来解决其他问题因此可以写的很简单1)初始化和定义int satck[MaxSize];int top-1;2)进栈stack[top]x;3)出栈xstack[top--];2、还要再提一点对于自增操作a总比a效率高自减有类似的性质。链栈注意考研中链栈的应用远比顺序栈少的多注意时间分配。主要操作两个状态栈空、栈满暂且认为不存在两个操作:进栈、出栈1、结构体定义//链栈节点定义 typedef struct LNode{ int data; struct LNode *next; }LNode;2、初始化栈void InitStack(LNode *lst){ lst(LNode*)malloc(sizeof(LNode));//制造一个头节点 lst-nextNULL: }3、清空栈4、销毁栈5、判空int isEmpty(LNode *lst){ if(lst-nextNULL)return 1; else return 0; }6、判满7、求栈长8、入栈void Push(LNode *lst,int x){ LNode *p; p(LNode *)malloc(sizeof(LNode)); p-nextNULL;// 每当申请新节点的时候将其指针域设置为NULL,是可以避免一些错误的好习惯 /*以下三句就是链表的头插法*/ p-datax; p-nextlst-next; lst-nextp; }9、出栈int Pop(LNode *lst,int x){ LNode *p; if(lst-nextNULL)return 0;//栈空则不能出栈返回0 /*以下就是单链表的删除操作*/ plst-next; xp-data; lst-nextp-next; free(p); return 1; }10、取栈顶链栈的存储结构、基本操作与顺序栈类似此处不再赘述后续笔记补充具体代码。应用后续笔记有具体代码括号如何配对表达式求值递归转非递归出栈序列合法性单栈操作双栈操作。。。

相关推荐

金舟军PFMEA 过程潜在失效模式及后果分析AIAG-VDA FMEA
金舟军PFMEA 过程潜在失效模式及后果分析AIAG-VDA FMEA

培训课程公开课大纲 一. 过程FMEA培训目的:通过本课程的学习, 使学员能熟练运用PFMEA分析和评价本岗位或本工序潜在失效模式及后果分析,并能制定相应错误预防措施,以使所有过程的作业指导书源于该过程的PFMEA。二. 过程FMEA培训对象:采购、仓贮、设计、工艺、设备、… · 2026/9/24 17:37:16

车间各工位节拍不一致,数字化手段如何做产能平衡
车间各工位节拍不一致,数字化手段如何做产能平衡

一、全工位节拍数据自动采集,定位真实瓶颈传统人工统计工时误差大、滞后严重,无法精准定位真实产线瓶颈。 通过设备PLC、工位传感器、MES报工数据,自动采集各工序UPH、加工时长、等待时长、换线时间、停机时长。 依托真实时序数据对比各工位节… · 2026/9/24 17:37:16

在str.format()方法中,花括号`{}`内部可以包含数字,这些数字代表了参数的位置索引
在str.format()方法中,花括号`{}`内部可以包含数字,这些数字代表了参数的位置索引

在Python编程的浩瀚生态中,字符串处理无疑是最基础也是最核心的技能之一。对于正在系统学习Python编程基础及计算机专业知识的开发者而言,掌握高效的字符串操作不仅是编写清晰代码的前提,更是提升程序性能的关键。Python提供了多种字符串格式… · 2026/9/24 17:37:16

脑肿瘤分割实战:2D/3D-UNet与VNet实现及生存预测模型解析
脑肿瘤分割实战:2D/3D-UNet与VNet实现及生存预测模型解析

简介:面向计算机相关专业学生与研究者的脑肿瘤分割毕设项目资料包,聚焦 3D-UNet、3D-VNet 与 2D-UNet 三种经典分割网络的算法实现与对比,并附带生存预测模型,覆盖从数据生成、模型训练到结果分析的完整流程,可直接用于… · 2026/9/24 18:12:55

HTML 的 <table> 元素
HTML 的 <table> 元素

1. 引言 在网页开发中&#xff0c;表格是展示结构化数据最直观的方式之一。无论是商品列表、成绩单、财务报表&#xff0c;还是后台管理系统的数据展示&#xff0c;<table> 元素都扮演着不可或缺的角色。本文将带你系统学习 HTML 表格的完整知识体系&#xff0c;从基础语… · 2026/9/24 18:12:55

联邦学习实战:VGG19、EfficientNet与ResNet50在分心驾驶检测中的对比
联邦学习实战:VGG19、EfficientNet与ResNet50在分心驾驶检测中的对比

简介&#xff1a;面向计算机相关专业学生与开发者&#xff0c;提供一份基于联邦学习的分心驾驶检测完整实现。项目使用VGG19、efficientnet与Resnet50三种网络对驾驶员状态数据集进行分类&#xff0c;并在联邦学习框架中引入Shapley值贡献评估与激励机制&#xff0c;兼顾模型精… · 2026/9/24 18:12:55

手撸RTSPClient:协议握手、重连降级与避坑指南
手撸RTSPClient:协议握手、重连降级与避坑指南

简介&#xff1a;这是一份面向嵌入式开发与流媒体协议学习者的轻量级RTSP客户端实现源码包&#xff0c;聚焦于RTSP协议核心交互逻辑的工程化实践&#xff0c;适用于C/C开发者快速掌握流媒体控制层开发要点。资源包含7个文件&#xff0c;以3个头文件&#xff08;.h&#xff09;定… · 2026/9/24 18:12:55

网易云音乐情感分类全流程:从数据集到模型实战
网易云音乐情感分类全流程:从数据集到模型实战

简介&#xff1a;这份资源是面向情感分析、文本挖掘与音乐推荐等方向研究者的网易云音乐情感分类数据集。数据约含39.5万条音乐情感标签记录&#xff0c;每条都包含歌曲ID、歌单ID与歌曲情感标签三个核心字段&#xff0c;可用于构建情感分类模型、开展音乐情绪分析及数据挖掘实… · 2026/9/24 18:12:54

Gemini语音模型升级,开发者怎么接
Gemini语音模型升级,开发者怎么接

做语音助手最难的地方&#xff0c;不是让机器开口说话&#xff0c;而是让它一边说话一边把事办了。过去很多方案把语音识别、对话模型和语音合成串成一条流水线&#xff0c;延迟叠加&#xff0c;打断后状态也容易丢。Gemini 新发布的 3.8 Live 和 3.8 Live Extended Thinking 直… · 2026/9/24 18:12:48

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介&#xff1a;这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源&#xff0c;围绕YOLOv8实现渔船作业监控系统&#xff0c;可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件&#xff0c;约24.21MB&#xff0c;以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介&#xff1a;面向时间序列数据建模的一维卷积神经网络完整实现&#xff0c;适合深度学习入门者及需要快速验证时序模型的研究者&#xff0c;能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小&#xff0c;只有3KB&#xff0c;内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L&#xff0c;而是舌尖上的L最近在几个方言群和语音教学社群里&#xff0c;反复看到有人发一句&#xff1a;“也说字母L&#xff1a;柔软的长舌”。初看以为是英语发音课笔记&#xff0c;点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码