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

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

网站建设维护张家界网站建设

工具MT管理器(看版本号选最新版本)NP管理器(看版本号选最新版本)资源大师(自行必应)教程一、准备1.在mt/np管理器提取安装包/找到安装包位置2.去除软件签名效验&#

2026/06/30 14:11:09

嘉定网站建设网站企业建设

还在为不同设备需要不同流媒体协议而烦恼吗?安防系统要RTSP、手机播放要HLS、网页实时观看要WebRTC?go2rtc作为一站式摄像头流媒体应用,支持RTS

2026/06/30 10:02:18

黄冈网站建设网站建设知识

测风激光雷达是一种基于光学脉冲相干探测技术的高精度风场监测设备,通过分析大气中气溶胶粒子对激光产生的多普勒频移效应,实现三维风场的实时探测。该系统具备"测得快、测得

2026/06/30 11:29:56

东莞网站建设衡水网站建设

5步掌握SukiUI跨平台部署|现代化桌面UI框架集成指南【免费下载链接】SukiUIUI Theme for AvaloniaUI项目地址: https://gitcode.com/g

2026/06/30 10:13:49

淮安网站建设上海门户网站建设

简介LangChain 1.0作为高层框架,专注于快速原型设计和LLM应用部署;LangGraph 1.0作为底层编排引擎,擅长持久化、有状态的智能体工作流。

2026/06/30 13:44:37

莱芜网站建设网站建设基础知识

深夜急救:论文卡壳?AI率超标?24小时内搞定的7款神器清单凌晨2点,你盯着屏幕上的论文初稿发呆——导师批注里“逻辑混乱”“AI痕迹过重”的红色

2026/06/30 12:24:31

荆门网站建设广州网站建设工作室

Joplin笔记应用完整安装指南:跨平台高效知识管理【免费下载链接】joplinJoplin 是一款安全笔记记录与待办事项应用,具备跨平台同步功能,支持 Wi

2026/06/30 13:36:36

诸城网站建设陕西网站建设

规避损失 > 追求收益,这是几乎所有决策偏差的源头。不确定的好处,不如确定的安全;可能的失败,比可能的成功更让人恐惧。所以人们会ÿ

2026/06/30 12:51:03

网站建设项目网站建设便宜

anything-llm镜像在实际项目中的五大应用场景在AI技术快速渗透各行各业的今天,一个现实问题日益凸显:通用大模型虽然“能说会道”,但在面对企业内部文档

2026/06/30 12:05:29