北京网站建设东莞网站建设公司

安徽唯一制冷设备有限公司 2026/09/09 20:15:41
  • 栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈)
  • 允许进行操作的一端称为”栈顶“
  • 另一固定端称为”栈底“
  • 当栈中没有元素时称为”空栈“
  • 特点:后进先出(LIFO)或先进后出

  • 顺序栈是顺序表的一种,具有顺序表同样的存储结构,由数组定义,配合用数组下标表示的栈顶指针top(相对指针)完成各种操作
typedefintdata_t;/*定义栈中数据元素的数据类型*/typedefstruct{data_t*data;/*用指针指向栈的存储空间*/intmaxlen;/*当前栈的最大元素个数*/inttop;/*指示栈顶位置(数组下标)的变量*/}sqstack;/*顺序栈类型定义*/

顺序栈

功能代码

#include<stdio.h>#include<stdlib.h>#include<string.h>#include"sqstack.h"sqstack*stack_create(intlen){sqstack*s;if((s=(sqstack*)malloc(sizeof(sqstack)))==NULL){printf("malloc sqstack failed
");returnNULL;}if((s->data=(data_t*)malloc(len*sizeof(data_t)))==NULL){printf("malloc data failed
");free(s);returnNULL;}memset(s->data,0,len*sizeof(data_t));s->maxlen=len;s->top=-1;returns;}intstack_push(sqstack*s,data_tvalue){if(s==NULL){printf("s is NULL
");return-1;}if(s->top==s->maxlen-1){printf("stack is full
");return-1;}s->top++;s->data[s->top]=value;return0;}intstack_empty(sqstack*s){if(s==NULL){printf("s is NULL
");return-1;}return(s->top==-1?1:0);}intstack_full(sqstack*s){if(s==NULL){printf("s is NULL
");return-1;}return(s->top==s->maxlen-1?1:0);}data_tstack_pop(sqstack*s){s->top--;return(s->data[s->top+1]);}data_tstack_top(sqstack*s){return(s->data[s->top]);}intstack_clear(sqstack*s){if(s==NULL){printf("s is NULL
");return-1;}s->top=-1;return0;}intstack_free(sqstack*s){if(s==NULL){printf("s is NULL
");return-1;}if(s->data!=NULL){free(s->data);}free(s);return0;}

头文件

typedefintdata_t;typedefstruct{data_t*data;intmaxlen;inttop;}sqstack;sqstack*stack_create(intlen);intstack_push(sqstack*s,data_tvalue);intstack_empty(sqstack*s);intstack_full(sqstack*s);data_tstack_pop(sqstack*s);data_tstack_top(sqstack*s);intstack_clear(sqstack*s);intstack_free(sqstack*s);

测试文件

#include<stdio.h>#include"sqstack.h"intmain(intargc,constchar*argv[]){sqstack*s;s=stack_create(100);if(s==NULL)return-1;stack_push(s,10);stack_push(s,20);stack_push(s,30);stack_push(s,40);while(!stack_empty(s)){printf("pop: %d 
",stack_pop(s));}stack_free(s);return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

巴中网站建设集团网站建设

Mermaid在线编辑器终极完整使用指南:从零基础到熟练操作【免费下载链接】mermaid-live-editorEdit, preview and share mermaid char

2026/06/30 12:51:03

网站建设制作低价网站建设

TscanCode:零配置快速上手的代码安全扫描神器【免费下载链接】TscanCode项目地址: https://gitcode.com/gh_mirrors/tsc/TscanCode

2026/06/30 10:21:19

成都网站建设网站建设团队

动画工作室降本增效:采用IndexTTS 2.0进行初步配音预览在动画和虚拟内容制作的日常中,一个看似微小却频繁出现的问题常常困扰着团队——台词节奏不对。导演剪好了分镜&#

2026/06/30 14:12:39

辽宁网站建设网站建设哪家

BetterNCM安装器终极指南:轻松管理网易云音乐插件生态【免费下载链接】BetterNCM-Installer一键安装 Better 系软件项目地址: https://gitcode

2026/06/30 13:12:35

邢台网站建设西安专业网站建设

数据宏与触发器的应用指南1. 数据宏与触发器基础在Web应用中,每个表都有三个事件,可在其中嵌入数据宏代码,以响应用户对表中数据的插入、更新或删除操作。这三个事件分别是On Insert、On Upd

2026/06/30 10:51:52

网站建设服务海淀网站建设

YOLOv8模型部署到Jetson Nano的实践经验在智能摄像头、巡检机器人和边缘AI设备日益普及的今天,如何让深度学习模型真正在“端侧”跑起来,成了许多开发者面临的核心

2026/06/30 11:39:57

都江堰网站建设网站建设如何

快速体验打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容:创建一个面向电脑新手的VCRUNTIME140.DLL修复向导,

2026/06/30 13:23:05

网站建设项目邵阳网站建设

在数字政府建设浪潮中,政务热线作为政民互动的核心渠道,正从 “数字化” 向 “数智化” 全面跃迁。清华大学数字政府与治理研究院发布的《AI 驱动政务热线发展研究报告

2026/06/30 12:29:31