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

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

网站建设计网站建设北京

YOLOFuse物联网边缘节点部署实践:多模态融合如何重塑智能感知在深夜的变电站巡检中,可见光摄像头画面一片漆黑,而红外图像虽能捕捉设备热异常,

2026/06/30 12:56:03

荆门网站建设诸城网站建设

使用lora-scripts进行客服话术定制:让LLM生成更贴近业务场景的回复在智能客服系统日益普及的今天,一个普遍存在的问题是:即使部署了基于大语言模型&#

2026/06/30 11:57:58

网站建设案例广西网站建设

智能文档处理实战:如何三天内搭建高效企业知识管理系统【免费下载链接】MinerUA high-quality tool for convert PDF to Markdown and J

2026/06/30 12:39:32

网站建设空间江门网站建设

目录具体实现截图项目介绍论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图本系统(程

2026/06/30 13:42:06

网站制作建设郑州建设网站

UI.Vision RPA终极指南:如何用免费开源工具实现跨平台自动化【免费下载链接】RPAUI.Vision: Open-Source RPA Software (formerly K

2026/06/30 11:21:25

淮北网站建设忻州网站建设

哔哩下载姬完整使用指南:从入门到精通【免费下载链接】downkyi哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、H

2026/06/30 13:24:05

北京网站建设公司河南网站建设公司

Linux集群计算机基础入门1. 集群的定义与优势在当今数字化时代,集群计算成为了热门话题。那么,什么是集群计算机呢?集群计算机是一组通过专门的硬件和软件相互连接的独立计算机,它们向用户呈现单一系统映

2026/06/30 13:13:34

温州网站建设网站建设规划书

作为一名经历过无数生产环境考验的资深工程师,我深知在高并发场景下选择合适的技术栈是多么重要。最近我参与了一个日活千万级的电商平台重构项目,这个项目让我重新思考了Web框架在

2026/06/30 13:48:37

中国建设银行网站晋江网站建设

Vue大屏自适应实战指南:3分钟解决多分辨率适配难题【免费下载链接】v-scale-screenVue large screen adaptive component vue大屏自适应组

2026/06/30 11:16:54