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

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

唐山网站建设长沙网站建设

Sendmail:强大邮件程序的配置与管理指南1. Sendmail 简介Sendmail 是一款功能强大但学习和理解难度较大的邮件程序。过去,配置 Sendmail 需要直接编辑复杂的 sendma

2026/06/30 13:01:04

广州网站建设住房和城乡建设部网站

利用代理跟踪Selenium网络流量在自动化测试中,我们常常希望能够跟踪浏览器的网络流量,然而Selenium本身并不直接支持这一功能。本文将详细介绍如何借助代理来实现网络流量的跟踪,并对相关代码实现

2026/06/30 11:27:25

建设网站教程网站建设 企业

智慧树自动学习插件完整使用指南:三步实现高效刷课体验【免费下载链接】zhihuishu智慧树刷课插件,自动播放下一集、1.5倍速度、无声项目地址: https://gitc

2026/06/30 13:41:06

大型门户网站建设黄冈网站建设

第一章:Open-AutoGLM跑不动?:深度剖析Mac内存管理与模型量化优化策略在 macOS 平台上部署 Open-AutoGLM 时常遇到“模型加载失败

2026/06/30 10:14:19

网站建设与维护齐齐哈尔网站建设

获取地址:Wise Disk Cleaner 专业版专业的系统垃圾清理与磁盘优化工具。采用深度扫描引擎,可精准识别并清除系统缓存、无效注册表、程序残留文件、浏览器历史记录等

2026/06/30 12:34:32

南宁网站建设宁波网站建设

如何引用VibeThinker研究成果?学术论文标准引用格式在当前大语言模型“军备竞赛”愈演愈烈的背景下,参数规模早已不是衡量AI能力的唯一标尺。越来越多的研究开始关注一个

2026/06/30 10:35:20

网站建设心得怀化网站建设

ncmToMp3:解锁网易云音乐加密文件的终极技术方案【免费下载链接】ncmToMp3网易云vip的ncm文件转mp3/flac - ncm file to mp3 or flac项目地

2026/06/30 12:01:29

安徽省建设厅网站公司的网站建设

8个降AI率工具,自考人必看!AI降重工具:自考人论文的“隐形助手”在当前学术写作中,随着AI技术的广泛应用,越来越多的论文被系统

2026/06/30 13:49:07

浙江网站建设大良网站建设

“仓库 Reel ID”是在仓储管理、电子元器件、SMT(表面贴装技术)等行业中常见的一个术语,尤其在高价值、小体积、卷带包装物料的精细化管理场景中广泛使用。

2026/06/30 12:12:29