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

中山市建设局投诉网站怎么推广网站建设业务

中山市建设局投诉网站,怎么推广网站建设业务,双语企业网站源码,网站备案幕目录: 一、栈的概念 二、栈的实现 1.栈的初始化 2.栈的销毁 3.入栈 4.出栈 5.获取栈顶数据 6.判断栈是否为空 7.获取栈的个数 三、代码 一、栈的概念 栈是一种特殊的线性表#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端…目录: 一、栈的概念 二、栈的实现 1.栈的初始化 2.栈的销毁 3.入栈 4.出栈 5.获取栈顶数据 6.判断栈是否为空 7.获取栈的个数 三、代码 一、栈的概念 栈是一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出LIFOLast In First Out的原则。 压栈栈的插入操作叫做进栈/压栈/入栈入数据在栈顶。 出栈栈的删除操作叫做出栈。出数据也在栈顶。 例比如手枪弹夹先压进去的子弹往往是后发射出去也就是遵循后进先出的原则。 首先来创建一个结构体我们是基于数组实现的栈一个栈首先要有数组存放数据给一个top表示个数给一个capacity表示空间大小 typedef int stacktype; typedef struct Stack {stacktype* a;//动态数组int top; //个数int capacity;//空间 }ST; 二、栈的实现 1.栈的初始化 一开始数组为空并且top和capacity都为0这里的top有两种初始化方法如果我们想让他指向栈中的最后一个数据那么它的值就不能是数组的起始下标0而应该给一个无关的数比如-1第二种就是top表示栈顶数据的下一个位置那我们就可以给他赋值0这里我们使用第二种方法 void STInit(ST* pst)//初始化 {assert(pst);pst-a NULL;pst-top 0;//基于size指向的是栈顶数据的下一个位置pst-capacity 0; } 2.栈的销毁 删除也是很简单原理和顺序表都差不多 void STDestroy(ST* pst)//销毁 {assert(pst);free(pst-a);//free掉pst-a NULL;//置为空防止变成野指针pst-top 0;pst-capacity 0; } 3.入栈 首先要明白栈是栈顶入栈顶出所以所有数据都从栈顶进入也就是top的位置随后top就可以扩容和顺序表一样详情可以参考https://blog.csdn.net/xpcxpt/article/details/147466492?spm1001.2014.3001.5501 总体代码如下 void STPush(ST* pst, stacktype x)//插入 入栈 {assert(pst);//扩容if (pst-top pst-capacity){int newcapacity pst-capacity 0 ? 4 : pst-capacity * 2;stacktype* tmp (stacktype*)realloc(pst-a, newcapacity * sizeof(stacktype));if (tmp NULL){perror(realloc fail);return;}pst-a tmp;pst-capacity newcapacity;}pst-a[pst-top] x;pst-top; } 4.出栈 出栈也就是删除一个栈顶的数据那只需要让top--就可以了 void STPop(ST* pst)//删除 出栈 {assert(pst);assert(pst-top 0);//top是非负数pst-top--;//删除一个 } 5.获取栈顶数据 top的位置的栈顶数据的下一个位置所以要想获取栈顶元素就要获取top-1位置的元素: stacktype STTop(ST* pst)//获取栈顶数据 {assert(pst);assert(pst-top 0);return pst-a[pst-top - 1]; } 6.判断栈是否为空 直接判断栈中数据数量top是否为空这里可以使用bool类型不为空返回true为空返回fulse   bool STEmpty(ST* pst)//判断栈是否为空 {assert(pst);return pst-top 0; } 7.获取栈的个数 这里也是非常简单就是获取top的大小几行代码就搞定了 int STSize(ST* pst)//判断栈的数据个数 {assert(pst);return pst-top;//从0开始的所以返回size的大小-1,也就是下表从0-top-1一共top个 } 三、代码 总体代码如下: test.c: #include stack.hint main() {ST s;STInit(s);STPush(s, 1);STPush(s, 2);//printf(%d , STTop(s));STPush(s, 3);STPush(s, 4);while (!STEmpty(s)){printf(%d , STTop(s));STPop(s);}STDestroy(s); }stack.h:   #pragma once#includestdio.h #includeassert.h #includestdlib.h #includestdbool.htypedef int stacktype; typedef struct Stack {stacktype* a;//动态数组int top; //个数int capacity;//空间 }ST;void STInit(ST* pst);//初始化 void STDestroy(ST* pst);//销毁 void STPush(ST* pst, stacktype x);//插入 入栈 void STPop(ST* pst);//删除 出栈 stacktype STTop(ST* pst);//获取栈顶数据 bool STEmpty(ST* pst);//判断栈是否为空 int STSize(ST* pst);//判断栈的数据个数 stack.c:   #include stack.hvoid STInit(ST* pst)//初始化 {assert(pst);pst-a NULL;pst-top 0;//基于size指向的是栈顶数据的下一个位置pst-capacity 0; }void STDestroy(ST* pst)//销毁 {assert(pst);free(pst-a);//free掉pst-a NULL;//置为空防止变成野指针pst-top 0;pst-capacity 0; }void STPush(ST* pst, stacktype x)//插入 入栈 {assert(pst);//扩容if (pst-top pst-capacity){int newcapacity pst-capacity 0 ? 4 : pst-capacity * 2;stacktype* tmp (stacktype*)realloc(pst-a, newcapacity * sizeof(stacktype));if (tmp NULL){perror(realloc fail);return;}pst-a tmp;pst-capacity newcapacity;}pst-a[pst-top] x;pst-top; } void STPop(ST* pst)//删除 出栈 {assert(pst);assert(pst-top 0);//top是非负数pst-top--;//删除一个 } stacktype STTop(ST* pst)//获取栈顶数据 {assert(pst);assert(pst-top 0);return pst-a[pst-top - 1]; } bool STEmpty(ST* pst)//判断栈是否为空 {assert(pst);return pst-top 0; } int STSize(ST* pst)//判断栈的数据个数 {assert(pst);return pst-top;//从0开始的所以返回size的大小-1,也就是下表从0-top-1一共top个 }
http://www.pierceye.com/news/238382/

相关文章:

  • 行业网站方案网站搭建合同
  • 如何用ps做网站图标吉林省长春市建设局网站
  • 北京高端网站建设服务广州百度快速排名优化
  • 电子商务网站开发课程设计网站建设石家庄
  • 好的公司网站有什么用烟台建设集团招聘信息网站
  • 网站制作需要多长时间网站代建设费用
  • 淘宝客网站设计台州建设银行官方网站
  • 婚纱网站建设规划书2023全国企业公司大黄页
  • 网站seo的关键词排名怎么做的wordpress 在线留言
  • 建一个c2c网站要多少钱小程序云开发文档
  • asp网站合法上虞网站设计
  • 网站 用什么数据库蛋糕店网站建设方案
  • 网站上的动效是用ae做的网站开发实训小结
  • wordpress建站怎么上传网站没有备案信息该怎么做
  • 沈阳网站推广有什么技巧软件开发工具通常也称为什么工具
  • 黑龙江龙采做网站如何网站建设制作解决方案
  • 百度推广自己做网站吗网页设计软件下载网站
  • wordpress内核源码分析南宁网站优化推广
  • 物流网站做那个好服务器怎么安装WordPress
  • 网站开发怎么兼容浏览器中国优秀设计网站有哪些内容
  • 黄冈网站官方登录平台做网站的条件
  • 潍坊网站建设推广公司网站建设类的手机软件
  • 建设小学网站建设网站代理
  • 怎么查看网站根目录网站建设费记什么科目
  • 文昌市规划建设管理局网站网站与个人网站
  • 昆明网站建设推荐q479185700上墙现在最火的推广平台有哪些
  • 长兴县城乡建设局网站wordpress的留言功能
  • 建设企业网站地址asp.net 4.0网站开...
  • 制作个人网站步骤提升学历励志语录
  • 福州建站服务管理页面布局标准格式