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

装修网站建设优缺点学做ppt的网站有哪些

装修网站建设优缺点,学做ppt的网站有哪些,旅游电子商务网站的建设,用手机做app用什么软件最好目录 1、栈 1.1 栈的概念及结构 2、栈的实现 2.1 接口 3、接口的实现 3.1 初始化 3.2 入栈/压栈 3.3 出栈 3.4 获取栈顶元素 3.5 获取栈中有效元素个数 3.6.1 bool 类型接口 3.6.2 int 类型接口 3.7 销毁栈 4、完整代码 5、功能测试 1、栈 1.1 栈的概念及结构 …目录 1、栈 1.1 栈的概念及结构 2、栈的实现 2.1 接口 3、接口的实现 3.1 初始化 3.2 入栈/压栈 3.3 出栈 3.4 获取栈顶元素 3.5 获取栈中有效元素个数 3.6.1 bool 类型接口 3.6.2 int 类型接口 3.7 销毁栈 4、完整代码 5、功能测试 1、栈 1.1 栈的概念及结构 栈一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出LIFOLast In First Out的原则。 压栈栈的插入操作叫做进栈/压栈/入栈入数据在栈顶。 出栈栈的删除操作叫做出栈。出数据也在栈顶。 我们以生活中的事物来理解一下栈糖葫芦 串糖葫芦的时候是最后一颗糖葫芦先串进去但是我们吃的第一个却是最后一颗被串上去的。 2、栈的实现 栈的实现一般可以使用 数组或者链表实现相对而言数组的结构实现更优一些。因为数组在尾上插入数据的 代价比较小。 我们本篇文章就是使用数组来实现栈。 2.1 接口 #include stdio.h #include stdlib.h #include assert.h // 支持动态增长的栈 typedef int STDataType; typedef struct Stack {STDataType* a;int top; // 栈顶int capacity; // 容量 }Stack; // 初始化栈 void StackInit(Stack* ps); // 入栈 void StackPush(Stack* ps, STDataType data); // 出栈 void StackPop(Stack* ps); // 获取栈顶元素 STDataType StackTop(Stack* ps); // 获取栈中有效元素个数 int StackSize(Stack* ps); // 检测栈是否为空如果为空返回非零结果如果不为空返回0 int StackEmpty(Stack* ps); // 销毁栈 void StackDestroy(Stack* ps); 3、接口的实现 3.1 初始化 我们的栈开始是空的因此容量与栈顶赋值为 0。 我们也可以将栈顶赋值为-1入栈的时候先让栈顶指针再将元素入栈这样栈顶指针正好指向的就是栈顶元素。但是我们这里还是将栈顶指针赋值为 0 了这样在获取栈中有效元素的时候就不用再操作了为后面提供了便利。 void StackInit(Stack* ps) {assert(ps);ps-a NULL;//ps-top -1;//top 指栈顶数据ps-top 0;//top 指栈顶数据的下一个位置ps-capacity 0; } 3.2 入栈/压栈 在入栈前我们要先判断栈是否满了如果满了我们就给栈先进性扩容。我们这里没有开始先malloc空间而是第一次就使用了 realloc这里有一个技巧那就是用三目操作符先看容量是否为 0 如果是 0 那么就意味着是第一次开空间就给 newcapacity 赋值为 4不为 0就说明是扩容那就将新的容量扩容为之前的 2 倍。 判满后我们就入栈这里其实就是给数组里面放元素进去给栈顶位置放一个元素进去后让 ps-top往后走一步。 void StackPush(Stack* ps, STDataType data) {assert(ps);if (ps-capacity ps-top){int newcapacity ps-capacity 0 ? 4 : ps-capacity * 2;STDataType* tmp (STDataType*)realloc(ps-a, sizeof(STDataType) * newcapacity);if (tmp NULL){perror(realloc fail:);return;}ps-a tmp;ps-capacity newcapacity;}ps-a[ps-top] data;ps-top; } 3.3 出栈 出栈很简单让 ps-top--就好了下次入栈的元素就会将之前的元素覆盖掉。 void StackPop(Stack* ps) {assert(ps);assert(!StackEmpty(ps));ps-top--; } 3.4 获取栈顶元素 获取栈顶元素前需要判空如果是空的话就不存在栈顶指针。栈顶元素就是下标为 top-1 的元素所以返回 ps-[ps-top-1] 就是栈顶元素。 STDataType StackTop(Stack* ps) {assert(ps);assert(!StackEmpty(ps));return ps-a[ps-top-1]; } 3.5 获取栈中有效元素个数 因为下标 top 是栈顶元素的下一个位置所以返回 top 就是栈中的有效元素个数。 int StackSize(Stack* ps) {assert(ps);return ps-top; } 3.6.1 bool 类型接口 int StackEmpty(Stack* ps) {assert(ps);return ps-top 0; } 3.6.2 int 类型接口 这里我们约定好为空返回 非0不为空返回 0。 int StackEmpty(Stack* ps) {assert(ps);if (0 ps-top)return 1;elsereturn 0; } 3.7 销毁栈 释放数组并置空将容量与栈顶赋值为 0。 void StackDestroy(Stack* ps) {assert(ps);free(ps-a);ps-a NULL;ps-capacity 0;ps-top 0; } 4、完整代码 完整代码在代码仓库入口C语言: C语言学习的代码多复习 - Gitee.com 5、功能测试
http://www.hkea.cn/news/14333165/

相关文章:

  • 门户网站建设服务收费农业网站电子商务平台建设方案
  • 东莞网站优化软件wordpress主题模版修改
  • 国内做视频的网站有哪些wordpress页面下
  • 精品网站开发公司wordpress 有评论时邮箱设置
  • 网站建设解决恩问题山西省建设厅招标网站
  • 网站建设推广软文案例做网站下载那个数据库好
  • 做门票的网站中国航天空间站最新消息
  • 中国站长之家哪个公司网站设计好
  • 东台做网站莆田专业建站公司
  • 制作网站的难度长沙网站建设论坛
  • 免费的企业建站cmshtml网页设计实验总结
  • 上海设计网站设计做新闻源网站采集站赚钱
  • 企业网站建设的重要性及意义在线阅读 wordpress主题
  • 建筑行业招聘网站推荐php企业网站后台管理系统
  • 爱奇艺的网站是用什么做的免费seo关键词优化方案
  • 用AIDE怎么建设网站网站做管制户外刀具
  • 泰州网站建设设计郑州网站建设设计公司
  • 国外做问卷赚购物券等的网站制作php网站用什么软件
  • 天猫入驻网站建设沈阳网站制作招聘网
  • 免费网站在哪里申请表设计模板网站
  • 网站预订模板怎么做赣州app开发
  • 谷歌自建站和优化济南网站自然优化
  • 上传电影网站源码h5可视化开发工具
  • 唐山制作网站公司搜索引擎中 哪些网站可以获得更好的排名
  • 河南网站开发泰安企业建站公司哪里找
  • 常州市武进区城乡建设局网站wordpress调用标签大全
  • 周口城乡建设局网站建设网站分析报告
  • 网站建设一般是用哪个软件全屏背景网站如何做到自适应
  • 国外 网站有做验证码吗烟台企业管理培训课程
  • 正规营销型网站建设公司免费ddns域名注册