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

长春网站建设xgsite网站建设方法总汇

长春网站建设xgsite,网站建设方法总汇,专业做足球体彩网站,微信棋牌小程序开发教程本文属于数据结构专栏文章#xff0c;适合数据结构入门者学习#xff0c;涵盖数据结构基础的知识和内容体系#xff0c;文章在介绍数据结构时会配合上动图演示#xff0c;方便初学者在学习数据结构时理解和学习#xff0c;了解数据结构系列专栏点击下方链接。 博客主页适合数据结构入门者学习涵盖数据结构基础的知识和内容体系文章在介绍数据结构时会配合上动图演示方便初学者在学习数据结构时理解和学习了解数据结构系列专栏点击下方链接。 博客主页Duck Bro 博客主页 系列专栏数据结构专栏 关注博主后期持续更新系列文章 如果有错误请大家批评指出博主会及时修改 感谢大家点赞收藏⭐评论✍ 数据结构入门 — 栈 本文关键字栈、概念及结构、动图、接口实现 文章目录 数据结构入门 — 栈一、 栈的概念及结构1. 栈的概念2. 栈的结构 二、栈的实现1. 动态增长栈结构2. 初始化栈3. 入栈4. 出栈5. 获取栈顶元素6. 获取栈中有效元素个数7. 检测栈是否为空8. 销毁栈 一、 栈的概念及结构 1. 栈的概念 栈Stack是一种特殊的线性数据结构它的特点是仅允许在一端进行插入和删除操作。这一端被称为栈顶Top另一端称为栈底Bottom。栈的操作模式为后进先出Last In First OutLIFO是一种简单的“先进后出”的顺序结构。 栈通常可以用数组或链表实现常用的操作包括入栈Push和出栈Pop。入栈操作是将新的元素插入到栈顶出栈操作是将栈顶的元素删除并返回。此外栈还有一些其他的操作如获取栈顶元素Top、判断栈是否为空IsEmpty等。往栈中插入元素的操作叫做push从栈中删除元素的操作叫做pop查看栈顶元素的操作叫做top。 2. 栈的结构 栈结构可以用数组或链表实现 数组实现栈栈底用数组下标为0的位置栈顶用数组下标为n-1的位置n为数组长度。入栈操作就是将元素插入到数组末尾出栈操作就是将数组末尾元素删除并返回。由于数组有固定的大小因此当栈满时就无法再插入元素这种情况称为栈溢出。 链表实现栈链表中的每个节点保存一个元素和一个指向下一个节点的指针。栈顶指针指向链表的头部入栈操作就是将新元素插入到链表头部出栈操作就是将链表头部元素删除并返回。由于链表的大小能够动态地调整因此它即使在没有预留额外空间的情况下也能灵活地添加或删除元素。 在实现栈时还需要考虑一些细节问题比如空栈的情况如何判断栈满或栈空等。 二、栈的实现 1. 动态增长栈结构 使用动态增长的结构top为栈内元素个数、capacity表示栈内的容量 typedef int STDatatype;typedef struct StackList {STDatatype* a;int top;int capacity; }STL;2. 初始化栈 初始化先将指针a置为空top、capacity置为0 void STInit(STL* pc) {assert(pc);pc-a NULL;pc-top 0;pc-capacity 0; }3. 入栈 这里使用realloc函数的特性当指针为空时跟malloc函数的效果相同入栈即尾插 void STPush(STL* pc, STDatatype x) {assert(pc);if (pc-capacity pc-top){int newcapacity pc-capacity 0 ? 4 : pc-capacity * 2;STDatatype* temp (STDatatype*)realloc(pc-a, sizeof(STDatatype) * newcapacity);if (temp NULL){perror(realloc fail);exit(-1);}pc-a temp;pc-capacity newcapacity;}pc-a[pc-top] x;pc-top; }4. 出栈 这里的出栈即尾删 void STPop(STL* pc) {assert(pc);assert(pc-top 0);--pc-top; }5. 获取栈顶元素 top指向栈顶的后一个获取栈顶元素时要将top减1 STDatatype STTop(STL* pc) {assert(pc);assert(pc-top 0);return pc-a[pc-top - 1]; }6. 获取栈中有效元素个数 top中记录了栈内的元素个数直接返回top即可 int STSize(STL* pc) {assert(pc);return pc-top; }7. 检测栈是否为空 如果栈内为空则top为0就是栈是空的 bool STEmpty(STL* pc) {assert(pc);return pc-top 0; }8. 销毁栈 释放a内的内存。将top\capacity置为0 void STDestroy(STL* pc) {assert(pc);free(pc-a);pc-a NULL;pc-top pc-capacity 0; }
http://www.w-s-a.com/news/625916/

相关文章:

  • 好看的个人博客主页长安网站优化公司
  • 企业网站关站大型综合新闻门户网站织梦模板
  • 网站优化排名易下拉效率查企业网站
  • 网站建设湛江关于汽车的网站
  • 南宁模板建站多少钱企业黄页名单
  • 企业网站的建设一般要素有网站定制公司地址
  • 婚纱摄影网站设计案例四川省城乡建设厅官方网站
  • 怎么做海淘网站wordpress首页表单
  • 大连网站优化技术长沙高端网站建设服务
  • 郎创网站建设做的网站 v2ex
  • 广东网站建设教程江西城乡住房建设网站
  • 做ppt卖给网站wordpress insert
  • 文化传媒公司网站模板wordpress转typecho
  • 网站建设设计视频郑州 服装网站建设
  • 网站建设什么公司好织梦cms默认密码
  • 大型网站 空间网上商城官网入口
  • 成都全美网站建设江苏专业网站建设
  • 足球网站模板有帮忙做阿里巴巴网站的吗
  • 建设厅报名网站京东网站的建设与发展前景
  • 金寨县住房和城乡建设部网站网页作业怎么做一个网站
  • 做ppt模板网站有哪些内容wap是什么意思卡老师
  • 网站建设一定要域名吗网站后台关键词设置
  • 标书制作公司网站坪山网站建设哪家便宜
  • 防止做网站的人修改数值门户网站架构
  • 电子项目外包网站考二建需要什么学历和专业
  • 做网站推广引流效果好吗电商推广技巧
  • 亦庄网站建设价格广州网站推广服务
  • 十大免费ppt网站下载重庆在线高校平台登录
  • 做环保网站案例百度seo教程
  • 体育用品网站模板网站建设话术