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

网站建设的后如何发布春哥seo博客

网站建设的后如何发布,春哥seo博客,网站开发费 无形资产,凯天建设发展集团有限公司网站详解C语言动态实现顺序栈~#x1f60e;前言#x1f64c;预备小知识#x1f49e;栈的概念及结构整体实现内容分析#x1f49e;1.头文件编码实现#x1f64c;2.功能文件编码实现#x1f64c;3.测试文件的编写#xff1a;#x1f64c;总结撒花#x1f49e;#x1f60e;博… 详解C语言动态实现顺序栈~前言预备小知识栈的概念及结构整体实现内容分析1.头文件编码实现2.功能文件编码实现3.测试文件的编写总结撒花博客昵称博客小梦 最喜欢的座右铭全神贯注的上吧 作者简介一名热爱C/C算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主 博主小留言哈喽各位CSDN的uu们我是你的博客好友小梦希望我的文章可以给您带来一定的帮助话不多说文章推上欢迎大家在评论区唠嗑指正觉得好的话别忘了一键三连哦 前言 哈喽各位友友们我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下我仅已此文手把手带领大家详解C语言动态实现顺序栈~ 要是为了运用所学的链表的相关知识和算法。用代码来实现顺序栈也就是用数组来实现栈。都是精华内容可不要错过哟 预备小知识 栈的概念及结构 栈一种特殊的线性表其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶另一端称为栈底。栈中的数据元素遵守后进先出LIFOLast In First Out的原则。 压栈栈的插入操作叫做进栈/压栈/入栈入数据在栈顶。 出栈栈的删除操作叫做出栈。出数据也在栈顶。 整体实现内容分析 栈的实现一般可以使用数组或者链表实现相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。顺序栈的设计思想是用数组相比于静态数组动态数组来设计的话会更加灵活一点。然后还是和链表那样实现栈的基本功能这里就不赘述了。 1.头文件编码实现 头文件的编写的整体思路分析 其实大致的实现和链栈差不多这里先定义一个栈的结构体用typedef给结构体和数据类型取别名然后就是各种功能函数的声明和上述链表差不多。 #includestdio.h #includeassert.h #includestdbool.h#includestdlib.htypedef int StDatetype; typedef struct StackNode {StDatetype* a;StDatetype top;StDatetype capacity; }ST; //初始化 void StackInit(ST*ps); //销毁 void StackDestory(ST* ps); //入栈 void StackPush(ST* ps, StDatetype x); //出栈 void StackPop(ST* ps); //栈上的数据个数 int StackSize(ST* ps); //栈顶元素 StDatetype StackTop(ST* ps);bool StackEmpty(ST*ps);void StackPrint(ST* ps);2.功能文件编码实现 功能文件的编写的整体思路分析 这里是功能函数的实现需要注意的地方和编写的算法和链栈实现差不多。只是用数组实现的话在扩容上不够灵活会产生空间浪费的问题。为了减少空间浪费这里采用动态数组扩容时采用增加2倍比较合理的申请空间。然后就是要通过画图来帮助自己理清指针的指向需要注意的是free掉指针后一定要将指针置为NULL不然会造成野指针的问题。 #includeStack.h//初始化 void StackInit(ST* ps) {assert(ps);ps-a NULL;ps-capacity 0;ps-top 0;} //销毁 void StackDestory(ST* ps) {assert(ps);free(ps-a);ps-a NULL;ps-capacity ps-top 0;} //入栈 void StackPush(ST* ps, StDatetype x) {assert(ps);if (ps-top ps-capacity){StDatetype newnode ps-capacity 0 ? 4 : ps-capacity * 2;StDatetype* temp (StDatetype*)realloc(ps-a, sizeof(StDatetype)*newnode);if (temp NULL){printf(realloc fail\n);exit(-1);}ps-a temp;ps-capacity newnode;}ps-a[ps-top] x;ps-top;} //出栈 void StackPop(ST* ps) {assert(ps);assert(!StackEmpty(ps));ps-top--;} //栈上的数据个数 int StackSize(ST* ps) { assert(ps);return ps-top; } //栈顶元素 StDatetype StackTop(ST* ps) {assert(ps);assert(!StackEmpty(ps));return ps-a[ps-top - 1]; }bool StackEmpty(ST* ps) {return ps-top 0; } void StackPrint(ST* ps) {while (!StackEmpty(ps)){printf(%d, StackTop(ps));StackPop(ps);}printf(\n); } 3.测试文件的编写 #includeStack.hvoid StackTest() {ST st;StackInit(st);StackPush(st, 1);StackPush(st, 2);StackPush(st, 3);StackPush(st, 4);printf(栈的输出\n);while (!StackEmpty(st)){printf(%d, StackTop(st));StackPop(st);}StackDestory(st); }int main() {StackTest();return 0; } 功能测试结果展示图 总结撒花 本篇文章旨在分享详解C语言实现动态版顺序栈。希望大家通过阅读此文有所收获如果我写的有什么不好之处请在文章下方给出你宝贵的意见。如果觉得我写的好的话请点个赞赞和关注哦~
http://www.tj-hxxt.cn/news/135532.html

相关文章:

  • 外贸全网营销推广长沙关键词优化首选
  • 建网站做联盟备案网站名称怎么写个人
  • 公司网站建设价位网站中的二维码设计
  • 东莞宣传网站西安高校网站建设定制网站建设
  • 建设外贸商城网站太仓网络公司
  • 网站怎么做权重福州网站开发私人
  • 自己怎么做点击量好的网站宣城网站推广
  • 怎么做班级网站江西南昌网站建设服务
  • 用vs2012做网站教程怎么做关于花的网站
  • 网站怎样做有利于seo哪个平台免费招人最快
  • 给公司网站设计做淘客网站需要备案
  • 石家庄建站优化公司做网站需要apache
  • 百度网站惩罚期企业网站seo诊断工具
  • 图书网站建设实训心得安徽建设住房建设厅网站
  • 网站百度权重没有数据导购wordpress主题
  • 织梦怎么做中英文网站怎么制作微信网站
  • 网站建设与维护教学视频如何查找昆明公司的网站
  • 淘客网站代理地震网最新消息今天
  • 销售网站建设的意义wordpress 标签中文
  • 苏州网站建设致宇100个无水印短视频素材免费
  • 龙岗公司做网站做网站主要学什么条件
  • 使用flashfxp上传网站域名和网站的建设实训报告
  • 昆明体育城微网站建设兰州碧桂园
  • 做网站什么价位湘阴网页定制
  • 上海平台网站建设公网站制作公司上海
  • win8 风格网站模板vi设计模板源文件
  • 制作ppt的网站网站建设的开票编码
  • 网站制作费用是多少网站流量怎样挣钱
  • 昆明专业网站设计公司三门峡住房城乡建设局网站
  • 网站建设需要多少钱?qq企业邮箱怎么注册