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

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

网站建设哪家南网站建设

从创作困境到专业编剧:Trelby开源剧本软件的完美解决方案【免费下载链接】trelbyThe free, multiplatform, feature-rich screenwriti

2026/06/30 14:19:10

网站建设策划方案网站建设空间

AutoHotkey多语言支持终极指南:5步实现全球用户覆盖【免费下载链接】AutoHotkey项目地址: https://gitcode.com/gh_mirrors/autohotk

2026/06/30 10:16:49

岳阳网站建设商洛网站建设

当数字化浪潮席卷而来,出版业正站在一个前所未有的转折点上。2021至2024年,出版融合发展累计收入达358.62亿元,2024年单年收入97.24亿元,同比增长6.32%。这些数字背后,是一个传统行

2026/06/30 12:52:03

黄石网站建设建设网站建设

FPGA更新与可编程性:安全与应用解析1. 引言与专用集成电路(ASIC)不同,静态随机存取存储器(SRAM)现场可编程门阵列(FPGA)在制造后能够改变其逻辑配置。定义该逻辑的比特流存储在非易失性片

2026/06/30 10:32:20

asp网站建设洛阳网站建设

作为一个喜马拉雅的忠实用户,我曾经也面临着网络不稳定时的收听困扰。地铁里信号断断续续,出差路上网络时好时坏,那些付费购买的VIP内容更是让我担心无法永久保存。

2026/06/30 11:23:25

网站建设一条龙长安网站建设

IDE评估重置工具使用指南【免费下载链接】IDE评估重置工具ide-eval-resetter-2.3.5.jar欢迎使用ide-eval-resetter-2.3.5.jar,这是一款

2026/06/30 14:02:38

物流网站建设东莞网站建设公司

LobeChat菜谱推荐系统结合用户偏好在智能健康日益成为生活刚需的今天,如何为不同体质、饮食习惯和健康目标的人群提供真正个性化的饮食建议,是一个兼具技术挑战与现实意义的问

2026/06/30 10:45:22

龙岗网站建设广州市网站建设

第一章:C# 12顶级语句的革命性演进C# 12 对顶级语句(Top-Level Statements)进行了重大优化,使其更简洁、高效

2026/06/30 10:46:21

佛山网站建设广东网站建设

学术研究必备环境:PyTorch-CUDA-v2.7支持论文复现实验在深度学习科研一线,你是否经历过这样的场景?好不容易找到一篇顶会论文的开源代码࿰

2026/06/30 13:58:08