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

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

房产网站建设河北网站建设

快速体验打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容:开发一个基于KKFILE的智能文件管理系统,要求:

2026/06/30 10:57:53

成都网站建设龙岗网站建设

如何让条码扫描器“听话”?嵌入式系统中scanner通信协议的实战解析你有没有遇到过这样的场景:一个工业扫码枪接上MCU后,时而正常出码,时而乱

2026/06/30 10:53:22

黄石网站建设青岛网站建设公司

Git commit规范模板分享:适用于GLM-4.6V-Flash-WEB协作开发在当前AI应用快速落地的背景下,多模态大模型正从实验室走向真实业务场景。智谱AI推出的G

2026/06/30 10:54:52

青岛网站建设哪家好番禺网站建设

第一章:Open-AutoGLM下载好慢在本地部署 Open-AutoGLM 时,许多用户反馈遇到下载速度缓慢的问题,尤其是在国内网络环境下。该模型通常托管于

2026/06/30 11:50:57

网站建设推广网站建设技术网站建设

SimpleGUI终极实战指南:从零构建单色屏GUI应用的完整解决方案【免费下载链接】SimpleGUI针对单色屏幕的GUI图形接口项目地址: https://gitcode.com/P

2026/06/30 10:15:19

网站建设方案荆门网站建设

在 C# 开发中,和数据库打交道是家常便饭,而ADO.NET就是我们操作数据库的“得力助手”。它的核心对象各司其职,搭配起来即可完成数据的增、删、改、查。本文

2026/06/30 11:01:23

中山网站建设网站建设专家

使用Markdown表格对比不同Transformer模型参数在当前深度学习项目中,面对BERT、T5、GPT等层出不穷的Transformer架构,如何快速评估模型差异、

2026/06/30 11:26:56

济宁网站建设网站建设公司哪个好

你是否曾经因为忘记Apple ID密码,或者购买的二手设备存在激活锁而无法正常使用iPhone或iPad?AppleRa1n这款专业的iOS设备解锁工具正是为解决这类问题而

2026/06/30 14:14:10

互动网站建设专业网站建设公司

Dynisco 016-G999 可能是 Dynisco 产品线中的另一个部件或传感器,具体用途可能涉及压力、温度或流量测量。其设计通常与 DSV 601 类似,但可能在规

2026/06/30 10:30:20