广州网站建设行业网站建设

连云港市千栀味食品贸易有限公司 2026/09/09 18:54:00
  • 栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈)
  • 允许进行操作的一端称为”栈顶“
  • 另一固定端称为”栈底“
  • 当栈中没有元素时称为”空栈“
  • 特点:后进先出(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;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

学校网站建设西安企业网站建设

m3u8-downloader桌面版:流媒体视频下载的终极解决方案【免费下载链接】m3u8-downloaderm3u8 视频在线提取工具 流媒体下载 m3u8下载 桌面客户端 wind

2026/06/30 12:26:01

信阳网站建设鞍山网站建设

PostgreSQL pgvector扩展完整安装与实战指南:从零开始构建AI向量数据库【免费下载链接】pgvectorOpen-source vector similarity sea

2026/06/30 10:42:22

广州建设网站公司网站建设方案

型号介绍今天我要向大家介绍的是TDK的一款滤波器——DEA162500LT-1212A1。 它一旦遇到那些试图“闯入”的更高频率的杂波,比如4800-5000MHz的信号,

2026/06/30 14:10:39

网站建设推广招商网站建设

厌倦了RimWorld开局时那些技能混乱、装备不匹配的随机殖民者?EdB Prepare Carefully模组正是为你量身打造的终极解决方案!这个功能强大的模组让你在游戏

2026/06/30 11:45:27

杭州网站建设南京网站建设

AB下载管理器终极指南:一键安装快速上手【免费下载链接】ab-download-managerA Download Manager that speeds up your downloa

2026/06/30 12:05:59

莱芜网站建设网站建设需要

零基础图片转3D立体浮雕:5分钟搞定可打印模型终极教程【免费下载链接】ImageToSTLThis tool allows you to easily convert any image

2026/06/30 12:48:03

无锡网站建设网站建设套餐

如何快速掌握OpenWRT iStore:应用商店完整使用指南【免费下载链接】istore一个 Openwrt 标准的软件中心,纯脚本实现,只依赖Openwr

2026/06/30 10:52:52

中小企业网站建设长沙营销型网站建设

树莓派5上手实录:从拆盒到系统跑起来上周刚拿到全新的树莓派5,迫不及待开箱折腾了一番。作为一个从树莓派3时代就开始玩的老用户,这次升级真的让我眼前一亮——不只

2026/06/30 12:11:59

牡丹江网站建设住房城乡建设部网站

还在为繁重的职教平台课程任务而烦恼吗?hcqHome智能刷课助手通过自动化技术,帮你轻松应对职教云、智慧职教、资源库三大平台的课程学习需求。这款开源工具不仅能够大幅节省你的

2026/06/30 14:11:39

烟台网站建设银川网站建设

键盘映射工具深度配置:从基础到高级的完整指南【免费下载链接】Karabiner-Elements项目地址: https://gitcode.com/gh_mirrors/kar/Kara

2026/06/30 10:44:51