当前位置: 首页 > news >正文

线性表之链式栈

  • 插入操作和删除操作均在链表头部进行,链表尾部就是栈底,栈顶指针就是头指针
  • 不需要预先分配固定大小
  • 动态增长和收缩

typedefintdata_t;/*定义栈中数据元素数据类型*/typedefstructnode_t{data_tdata;/*数据域*/structnode_t*next;/*链接指针域*/}linkstack_t;/*链栈类型定义*/
  • 功能实现
#include<stdio.h>#include<stdlib.h>#include"linkstack.h"linkstackstack_create(){linkstack s;s=(linkstack)malloc(sizeof(listnode));if(s==NULL){printf("malloc failed\n");returnNULL;}s->data=0;s->next=NULL;returns;}intstack_push(linkstack s,data_tvalue){linkstack p;if(s==NULL){printf("s is NULL\n");return-1;}p=(linkstack)malloc(sizeof(listnode));if(p==NULL){printf("malloc failed\n");return-1;}p->data=value;//p->next = NULL;p->next=s->next;s->next=p;return0;}data_tstack_pop(linkstack s){linkstack p;data_tt;p=s->next;s->next=p->next;t=p->data;free(p);p=NULL;returnt;}intstack_empty(linkstack s){if(s==NULL){printf("s is NULL\n");return-1;}return(s->next==NULL?1:0);}data_tstack_top(linkstack s){return(s->next->data);}linkstackstack_free(linkstack s){linkstack p;if(s==NULL){printf("s is NULL\n");returnNULL;}while(s!=NULL){p=s;s=s->next;printf("free:%d\n",p->data);free(p);}returnNULL;}
  • 头文件
typedefintdata_t;typedefstructnode{data_tdata;structnode*next;}listnode,*linkstack;linkstackstack_create();intstack_push(linkstack s,data_tvalue);data_tstack_pop(linkstack s);intstack_empty(linkstack s);data_tstack_top(linkstack s);linkstackstack_free(linkstack s);
  • 测试文件
#include<stdio.h>#include<stdlib.h>#include"linkstack.h"intmain(intargc,constchar*argv[]){linkstack s;s=stack_create();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\n",stack_pop(s));}s=stack_free(s);return0;}
http://www.cnnetsun.cn/news/69983.html

相关文章:

  • 整体设计 之28 整体设计 架构表表述总表的 完整程序(之27 的Q268 )(codebuddy)
  • 云手机 实体手机的云端延伸
  • 交换机和网卡的 PFC 机制工作原理与实例解析
  • UI自动化测试常见面试题
  • Linux OOM 问题之 DMSERVER 受害者
  • Flutter引擎裁剪与鸿蒙方舟编译协同优化
  • STM32CubeMX的main.c开头介绍
  • 26.MPSOC FPGA linux读AHT20传感器
  • 嵌入式系统时序图完全指南:从原理到实战
  • 小团队与大团队的管理差异
  • [CISCN2019 华东南赛区]Web4
  • AI编程革命!Claude Skills大揭秘:小白也能快速上手的Agent开发神器,大模型开发者必看!
  • 内点法求最优潮流附matlab代码
  • 三相PWM整流器有限集模型预测电流控制附Simulink仿真模型
  • 光伏四可“可观”功能:光伏电站全景数字化的底层支撑技术
  • 如何用FLUX.1-dev镜像在本地部署下一代AI绘画模型?
  • 基于 Comsol 移动网格方法的激光熔池流动数值模拟
  • BLDC无刷直流电机Matlab仿真:转速电流双闭环控制及有感无感换相方式研究
  • [光学原理与应用-491]:水冷机、零气模块CDA、功率计等影响266皮秒紫外激光器的种子源1064nm功率稳定性结果的主要因素有哪些?
  • 昆仑通态MCGS与欧姆龙E5CC温控器通讯实战:PID模式及输出启停控制
  • 通达信〖逆势突破强牛〗指标公式 逆市环境中率先突破前期重要压力位 较强内在上涨动力
  • 基于扰动观测器的永磁同步电机(PMSM)模型预测控制(MPC)仿真探索
  • AEB联合仿真算法设计:Carsim2019.0+Matlab/Simulink2021a实现...
  • Java毕设选题推荐:基于springboot个人博客系统的设计与实现基于SpringBoot+Vue个人博客系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Java毕设选题推荐:基于springboot停车场车位预约系统基于Java springboot停车场管理系统停车位预约【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Java毕设选题推荐:基于springboot的无人化、线上化、数据化海洋馆预约系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Ascend C高级API应用:InitGlobalMemory与Pad操作的底层原理
  • Java毕设选题推荐:基于Java Web的新能源汽车信息咨询服务基于SpringBoot+Vue的新能源汽车信息咨询服务的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:OPA 集成指南:从原理到实践
  • Object.defineProperty和Proxy实现拦截的区别