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

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

黄冈网站建设佛山 网站建设

还在为找不到想读的小说而四处奔波吗?Uncle小说PC版就像一位贴心的图书管理员,帮你把全网小说资源整理得井井有条。无论你是上班休息、深夜阅读还是通勤阅读,这

2026/06/30 12:46:33

深圳外贸网站建设孝感网站建设

FPGA如何让CMOS数字电路“活”起来:从逻辑建模到真实时序验证你有没有遇到过这样的场景?一个看似简单的CMOS组合逻辑电路,在仿真软件里跑得完美无缺&#x

2026/06/30 12:33:02

物流网站建设江津网站建设

模糊逻辑算法动态避障,matlab模糊控制工具箱,有随机圆形障碍与线形障碍最近在搞机器人路径规划的时候发现传统避障算法在动态环境里容易翻车,要么反应太慢要么路

2026/06/30 10:41:51

云南网站建设宿迁网站建设

StringTemplate 4终极教程:构建企业级模板系统的完整指南【免费下载链接】stringtemplate4StringTemplate 4项目地址: https://gitco

2026/06/30 10:23:50

衡水网站建设遵义网站建设

一、核心概念先理清远程仓库:托管在网络上(如 GitHub/GitLab/Gitee)的 Git 仓库,用于团队协作和代码备份,本

2026/06/30 13:04:34

大型门户网站建设布吉网站建设

如何用HeyGem实现多视频批量绑定同一音频?详细操作流程分享在数字内容爆发式增长的今天,企业对视频制作的需求早已从“有没有”转向“快不快、多不多、准不准”。尤其是在在线教

2026/06/30 11:38:26

洛阳网站建设北京网站建设报价

转自微信号:牛逼的IT英伟达最新发布的NVL576正交架构,不仅标志着其在超大规模节点设计上的一次重大革新,也引发了与国内如海光、阿里等同类架构的对比讨论。本

2026/06/30 10:52:22

青岛网站建设牡丹江网站建设

专业驱动管理实战:DriverStore Explorer高效使用技巧【免费下载链接】DriverStoreExplorerDriver Store Explorer [RAPR]项目地

2026/06/30 10:53:52

网站建设报价南京网站建设

第一章:Open-AutoGLM部署前的准备与认知在部署 Open-AutoGLM 之前,充分理解其架构设计与运行依赖是确保系统稳定运行的关键。该模型基于开源大语言模型框架

2026/06/30 12:03:29