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

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

青岛网站建设哪家好四川网站建设

快速获取FTDI驱动:maixduino设备配置完整指南 🚀【免费下载链接】FTDICDM驱动下载说明该项目提供了maixduino接口所需的FTDI CDM驱动Wind

2026/06/30 13:26:35

江门网站建设宁波网站建设公司

PyTorch-CUDA-v2.8镜像安装全攻略:GPU加速深度学习训练一步到位在深度学习项目开发中,最令人沮丧的场景之一莫过于:代码写完后,却

2026/06/30 10:00:17

网站建设学校长沙 网站建设

第一章:气象数据季节性分解概述在分析长期气象观测数据时,识别和分离时间序列中的趋势、季节性和残差成分是理解气候模式变化的关键步骤。季节性分解技术能够将原始数据拆解为可解释的

2026/06/30 09:58:47

成都建设网站网站设计与建设

用Linly-Talker生成教育讲解视频,老师效率提升300%在一所普通中学的物理教研室里,张老师正对着摄像机反复重拍一段关于欧姆定律的讲解视频——已经录了第五遍

2026/06/30 13:00:04

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

如何在本地轻松部署Qwen3-VL多模态AI模型:新手完整指南【免费下载链接】Qwen3-VL-4B-Instruct-FP8项目地址: https://ai.gitcode.com/h

2026/06/30 12:11:30

建设部网站泰州网站建设

一键打包下载:让批量视频导出不再“卡手”在数字人技术飞速落地的今天,越来越多企业开始用AI批量生成培训视频、客服应答片段或电商商品介绍。想象这样一个场景:某教

2026/06/30 13:56:08

深圳外贸网站建设小企业网站建设

在敏捷开发与DevOps已成为主流的今天,测试代码作为软件质量保障的核心资产,其版本管理的重要性不言而喻。版本管理不规范可能导致环境混乱、用例冲突、缺陷复现困难等问题&#x

2026/06/30 10:57:53

台州网站建设都江堰网站建设

在锁屏或长时间不操作时,导致VS Code SSH连接断开的主要原因是网络中的防火墙或路由器会关闭长时间空闲的连接。你可以通过配置“心跳包”和让后台进程独立运行这两种方法来解决。下面我将

2026/06/30 13:24:35

佛山网站建设兰州网站建设

你好,研究者在每一个深夜的实验室灯光下,在每一份铺满文献的书桌前,我们都能看到你——那位在学术道路上独自跋涉的探索者。你知道研究课题的价值,你理

2026/06/30 12:20:30