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

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

龙岗网站建设北海网站建设

paopao-ce插件化架构终极指南:如何实现功能模块的动态加载与组合【免费下载链接】paopao-cerocboss/paopao-ce 是一个基于 Go 语言的轻量级博客系统。适合在

2026/06/30 14:18:39

怎么建设网站晋江网站建设

快速体验打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容:请生成一个完整的CMake项目配置,项目是一个C+&#

2026/06/30 12:40:32

服装网站建设莱芜网站建设

如何用MateChat在3天内打造专业级AI对话应用【免费下载链接】MateChat前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢

2026/06/30 14:03:38

合肥网站建设网站公司建设

如何快速掌握哔哩下载姬:面向新手的完整使用指南【免费下载链接】downkyi哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支

2026/06/30 12:59:34

网站建设策划书网站建设技术

FaceFusion在虚拟试衣间中的角色融合应用在电商直播间里,你点开一件连衣裙的“虚拟试穿”按钮,屏幕上立刻出现一个穿着该款式的模特——但那张脸,却是你自己

2026/06/30 11:27:55

网站建设心得福州网站建设

程序员在深圳,3年经验,13K冲刺20K如何储备技术栈?未来如何发展?一、技术栈储备(冲刺20K)20K的岗位通常要

2026/06/30 10:26:20

网站建设协议网站建设案例

Rspack 详解:高性能前端构建工具从入门到实战Rspack 详解:高性能前端构建工具从入门到实战一、Rspack 是什么?核心定位与目标二、Rspack

2026/06/30 11:20:55

昆山网站建设青岛网站建设公司

SSH批量管理多台机器:统一运维PyTorch-CUDA-v2.8集群在AI研发团队日常工作中,一个再熟悉不过的场景是:某位研究员刚调好模型,在

2026/06/30 10:59:53

商务网站建设娄底网站建设

GlosSI 终极指南:如何让任何游戏完美支持 Steam 控制器【免费下载链接】GlosSITool for using Steam-Input controller rebindin

2026/06/30 11:26:25