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

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

湖北网站建设睢宁网站建设

ms-swift:统一支持CPT/SFT/GRPO/DPO/KTO/RM的多任务大模型训练框架在今天的大模型时代,企业不再满足于“能生成文本”的通用模型,而是

2026/06/30 13:56:08

免费建设网站惠州网站建设

本章节主要讲解“接口性能测试—JMeter测试关系数据库”的内容,JDBC(Java DataBase Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为

2026/06/30 12:30:31

沈阳网站建设东莞网站建设公司

在数字桌面美化的浪潮中,动态壁纸已成为展现个性与品味的重要载体。今天为大家介绍一款基于Flutter技术构建的Wallpaper Engine壁纸获取工具,它能够帮助用户免

2026/06/30 12:53:33

海淀网站建设广州网站建设工作室

武侠小说江湖气息语音表现力优化方案在有声书市场持续升温的今天,一个令人出神的声音往往比华丽的文字更能抓住听众的心。尤其是武侠小说——刀光剑影、快意恩仇的世界里,若朗读者语调

2026/06/30 12:29:01

广州建设网站门户网站建设方案

如何用 AI 魔法点亮一支蜡烛?🔥你有没有想过,有一天只需写下一段话——比如“一个安静的夜晚,老人轻轻点燃桌上的蜡烛,火光映出他

2026/06/30 10:53:22

顺德网站建设海淀网站建设

一、背景C++ 代码似乎经常出现一个问题:如果该值可以来自左值或右值,则对象如何跟踪该值?即如果保留该值作为引用,那么就无法绑定

2026/06/30 12:36:32

网站建设方案旅游网站建设方案

一条SQL执行很慢,我们通常会使用MySQL的EXPLAIN命令来分析这条SQL的执行情况。通过key和key_len可以检查是否命中了索引,如果已经添加了索引࿰

2026/06/30 11:34:26

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

第一章:Open-AutoGLM与mobile-use语言理解精度比拼在移动设备日益成为主流计算平台的背景下,轻量化语言模型的语言理解能力成为关键性能指标。Open-Aut

2026/06/30 13:15:35

律师网站建设温州网站建设

PyTorch-CUDA-v2.9镜像安装全攻略:GPU加速深度学习一步到位在AI模型越来越“重”的今天,动辄几十亿参数的网络结构早已让CPU训练成为历史。如果你还在为环境

2026/06/30 11:05:53

网站建设费用莆田网站建设

随着大模型技术在各行业的快速落地,大模型算法工程师已成为人工智能领域最具竞争力的岗位之一。据统计,2025年AI技术岗年薪50万+职位占比达31%,但

2026/06/30 11:59:28