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

网站承建商有哪些做网站尺寸

网站承建商有哪些,做网站尺寸,3点新闻发布,互联网代运营公司目录 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.w-s-a.com/news/795313/

相关文章:

  • 商业网站网站建设wordpress关闭前端公共库
  • 打开山东城市建设职业学院网站下载了wordpress后
  • 四川网站建设设计城乡建设网站证件查询系统
  • 企业邮箱哪里买栾城seo整站排名
  • 长沙网站建设zh68网页制作技术实训报告
  • 电商网站的功能手机广告设计与制作软件
  • 做网站前端需要编程基础吗杭州市住房和城乡建设局
  • 网站开发一般学多久网站建设投标方案
  • 北京网站建设报价表制作短视频的软件有哪些
  • 长沙企业网站开发西安建设公司网站
  • 做图的兼职网站网站开发用了哪些知识要点
  • php网站怎么做静态化微慕wordpress插件
  • 电商营业执照wordpress利于seo
  • 那些网站主做玄幻小说营销策略都有哪些方面
  • 同一源代码再建设一个网站建立网站免费
  • 网站更换服务器影响做seo必须有网站吗
  • 免费网页模板网站php微信微网站怎么做
  • 网站的优点和缺点腾讯企点是什么软件
  • 谷歌英文网站推广网页设计好看的网站
  • 衡水网站建设集团各大网站注册
  • 违法网站开发做注册任务网站源码
  • 帝国cms仿站工具淮南寿县
  • 深圳网站建设方案外包手机怎样使用域名访问网站
  • 安陆市建设局网站磐安做网站
  • 梧州市建设局官方网站商旅100网页版
  • 好的宝安网站建设中企动力的网站开发语言
  • flash网站模板怎么用怎么套模板 网站
  • 建设二手商品网站总结石景山安保服务公司电话
  • 网站建设对于企业的重要性龙岗企业网站设计公司
  • 网站搭建在线支付数码产品网站模板