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

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

龙岩网站建设吉林省建设厅网站

TZImagePickerController深度解析:突破iOS原生图片选择限制的技术实践【免费下载链接】TZImagePickerController一个支持多选、选原图和视频的图片

2026/06/30 10:37:52

宝应网站建设城乡建设网站

C++高性能计算与分布式系统终极指南:从入门到精通的完整教程【免费下载链接】awesome-cppawesome-cpp - 一个精选的 C++ 框架、库

2026/06/30 14:06:39

九江网站建设江苏省建设厅网站

如何在普通Windows电脑上实现三星笔记伪装:完整注册表修改指南【免费下载链接】galaxybook_maskThis script will allow you to mimic y

2026/06/30 12:31:01

衡水网站建设汕头网站建设

一文说清STLink驱动安装常见问题与解决方法在嵌入式开发的日常中,STLink几乎是每个STM32工程师绕不开的工具。无论是调试代码、烧录程序,还是读取内存状态ÿ

2026/06/30 12:30:31

律师网站建设机票网站建设

2025年iOS微信红包插件深度评测:自动抢红包功能实测分析【免费下载链接】WeChatRedEnvelopesHelperiOS版微信抢红包插件,支持后台抢红包项目地址: https:

2026/06/30 10:34:20

九江网站建设网站建设专家

3步快速清除图片水印:AI智能工具让你轻松告别烦人水印【免费下载链接】WatermarkRemover-AIAI-Powered Watermark Remover using Flor

2026/06/30 12:33:02

云网站建设网站建设需求

快速体验打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容:创建一个Kubernetes与传统虚拟机部署的对比测试项目,要

2026/06/30 13:43:37

烟台网站建设宁波外贸网站建设

背景某一天用Windows的vscode不能正常连接虚拟机,显示管道不存在。从虚拟机输入命令ip addr show发现ens33不是之前的IP,而是2: ens33:&l

2026/06/30 12:02:59

房地产网站建设网站的建设

基于AnythingLLM的招投标文件智能解析系统设计构想在大型工程项目、政府采购或企业采购中,一份招标文件动辄数百页,涵盖技术规范、商务条款、法律要求和评分细则。投标团队

2026/06/30 13:56:08

深圳 网站建设公司建设网站

NoteKit:重新定义Markdown手写混合笔记体验的开源神器【免费下载链接】notekitA GTK3 hierarchical markdown notetaking appli

2026/06/30 13:34:36