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

数据结构——栈的讲解(超详细)

数据结构——栈的讲解(超详细)-腾讯云开发者社区-腾讯云

#include"Stack.h"
void STInit(ST* ps)
{ps->arr = NULL;ps->capacity = ps->top = 0;  //总空间个数和有用空间个数都初始化为0
}void STDestroy(ST* ps)
{if (ps -> arr)   //先判断是否进行动态内存开辟了{free(ps -> arr);}ps->capacity = ps->top = 0;
}void STPush(ST* ps, STDataType x)   //类似顺序表的尾插
{if (ps->capacity == ps->top){int newcaopacity = ps->capacity == 0 ? 4 : 2 * ps -> capacity;STDataType* arr1 = (STDataType*)realloc(ps->arr, newcaopacity * sizeof(STDataType));assert(arr1);ps->arr = arr1;ps->capacity = newcaopacity;}  //扩容完成ps->arr[ps->top++] = x;
}bool panduan(ST * ps)
{assert(ps);return ps -> top == 0;   //这个是来判断栈是不是空了
}void STPop(ST* ps)
{assert(ps);assert(!panduan(ps));ps->top--;
}STDataType STTop(ST* ps)
{return ps->arr[ps->top - 1];
}int STSize(ST* ps)
{return ps->top;
}

http://www.xdnf.cn/news/1082989.html

相关文章:

  • python使用fastmcp包编写mcp服务端(mcp_server)和mcp客户端(mcp_client)
  • Java教程——深入学习guava之并发编程
  • 如何使用backtrace定位Linux程序的崩溃位置
  • 大数据学习2:HIve
  • 故障诊断 | CNN-GRU-Attention故障诊断
  • LINUX75 LAMP
  • 前端-CSS-day1
  • Softhub软件下载站实战开发(十三):软件管理前端分片上传实现
  • 从零构建智能ai语音助手:ESP32s3+Python+大语言模型实战指南
  • SQL128 统计2021年未完成试卷作答数大于1的有效用户
  • Linux操作系统之文件(四):文件系统(上)
  • Android PNG/JPG图ARGB_8888/RGB_565‌解码形成Bitmap在物理内存占用大小的简单计算
  • STM32中实现shell控制台(命令解析实现)
  • [Cyclone] 哈希算法 | SIMD优化哈希计算 | 大数运算 (Int类)
  • Qt开发:QListWidget的介绍和使用
  • FLUX.1 Kontext:图像生成与编辑的范式革命
  • 基于大模型的肾积水全周期预测与诊疗方案研究报告
  • 【Note】《深入理解Linux内核》 第十八章:深入理解 ext2 与 ext3 文件系统
  • 每日学习问题记录
  • CppCon 2018 学习:STATE MACHINES BATTLEFIELD NAIVE VS STL VS BOOST
  • python实现简单的地图绘制与标记20250705
  • 智链万物:人工智能驱动的产业智能化革命
  • RocketMQ面试题
  • React Hooks全面解析:从基础到高级的实用指南
  • 『 C++入門到放棄 』- string
  • Python关键字梳理
  • 【MySQL进阶】错误日志,二进制日志,mysql系统库
  • React Native 开发环境搭建--mac--android--奔溃的一天
  • virtualbox+vagrant私有网络宿主机无法ping通虚拟机问题请教
  • Java创建型模式---单例模式