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

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

布吉网站建设东莞手机网站建设

目录手把手教你学Simulink--基础MPPT控制场景实例:基于Simulink的神经网络预测型MPPT控制仿真一、引言:为什么用神经网络预测型MPPT?—

2026/06/30 10:47:22

电器网站建设网站怎么建设

一、测试背景与行业挑战随着国家电网"泛在电力物联网"建设加速(2025年数据),智能电表日均产生数据量达15TB/千万台。数据安全面临三重威胁

2026/06/30 14:03:08

建设部网站十堰网站建设

昨天有个传统行业的客户找我做智能客服,我问他有知识库吗他回我,知识库是什么,有什么作用?我给他巴拉半小时一顿科普,告诉他知识库的完

2026/06/30 13:07:04

合肥网站建设孝感网站建设

PoE Overlay终极指南:从新手到专家的效率革命【免费下载链接】PoE-OverlayAn Overlay for Path of Exile. Built with Overwo

2026/06/30 10:48:52

中国建设银行网站邯郸网站建设

还在为不同平台的调试工具头疼吗?SerialTest让你的调试工作从此告别平台限制,实现真正的跨平台无缝对接。这款开源工具专为嵌入式开发者和物联网爱好者设计,

2026/06/30 13:24:05

建设局网站嘉定网站建设

YOLOFuse早期特征融合 vs 决策级融合:精度与资源消耗对比分析在智能安防、自动驾驶和夜间监控等现实场景中,我们常常面临一个尴尬的困境:白天清晰可见的目

2026/06/30 11:43:57

广州网站建设淮北网站建设

WSLg图形界面支持:在Windows上运行PyTorch-CUDA-v2.7 GUI应用在一台普通的 Windows 笔记本上,你有没有试过启动一个 Jupyter No

2026/06/30 10:40:21

濮阳网站建设住房和城乡建设厅网站

还在为传统.NET调试工具的局限性而困扰?🤔 今天我们将深入探索dnSpyEx这款专业.NET逆向工程工具的插件架构设计,揭秘其如何通过模块化思维彻底改变调

2026/06/30 13:19:35

诸城网站建设义乌网站建设

大规模语言模型推理性能优化:从单序列瓶颈到动态批处理架构【免费下载链接】llama.cppPort of Facebook's LLaMA model in C/C+&#

2026/06/30 10:24:50

建设网站教程黄冈网站建设

ReAct 之前:“纯思考” 型:思维链 (Chain-of-Thought)优点: 引导模型进行复杂的逻辑推理 缺点: 无法与外部世界交互,容易产生幻觉。“纯行动” 型:

2026/06/30 11:42:57