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

沈阳定制网站全网营销策划公司

沈阳定制网站,全网营销策划公司,装修公司资质查询官方网站,公司网站需要备案么目录 1.实现方法 过程详解 1.执行push 1-push 2-push 3-push 4 2.执行第一个pop 3.执行第二个pop 4.执行push 5-push 6 ​编辑 5.执行pop-pop-pop 代码实现 队列创建函数myQueueCreate 入队函数myQueuePush 出队函数myQueuePop 返回队列开头…目录 1.实现方法 过程详解 1.执行push 1-push 2-push 3-push 4 2.执行第一个pop 3.执行第二个pop 4.执行push 5-push 6 ​编辑 5.执行pop-pop-pop 代码实现 队列创建函数myQueueCreate 入队函数myQueuePush 出队函数myQueuePop 返回队列开头元素的函数myQueuePeek 判断队列是否为空的函数myQueueEmpty 队列销毁函数myQueueFree 2.提交结果 解决L19.【LeetCode笔记】用栈实现队列(方法1)遗留未讲的方法2 1.实现方法 过程详解 实现方法和方法1有较大的不同,一个栈用于入(push)数据,另一个栈(pop)用于出数据 对于push 1-push 2-push 3-push 4-pop-pop-push 5-push 6--pop-pop-pop过程画图分析 初始化时两个栈都为空,随便选一个压入数据 1.执行push 1-push 2-push 3-push 4 2.执行第一个pop 按队列的性质,需要pop 1,则需要将2,3,4拿出放到另一个栈中 3.执行第二个pop 按队列的性质,需要pop 2,此时直接对右侧栈pop 4.执行push 5-push 6 此时不能将5和6压入第二个栈,会改变队列的顺序,因此需要压入左侧的栈 5.执行pop-pop-pop 前两个pop将3和4出队 最后一次pop需要将5和6压入右侧的栈才能以正确的顺序出队 通过分析,可以得出方法2的核心在:一个栈用于入数据,另一个栈用于出数据 代码实现 由过程详解可知,可以专门定义一个栈用于入数据,另一个栈用于出数据 typedef struct {ST pushst;ST popst; } MyQueue; 队列创建函数myQueueCreate MyQueue* myQueueCreate() {MyQueue* obj(MyQueue*)malloc(sizeof(MyQueue));if (objNULL){perror(malloc);return NULL;}STInit(obj-pushst);STInit(obj-popst);return obj; }入队函数myQueuePush void myQueuePush(MyQueue* obj, int x) {STPush(obj-pushst,x); } 出队函数myQueuePop 这里要分类讨论,由过程详解可知,要判断栈popst是否为空,如果为空,需要将pushst的数据(前提是有数据,因此还要再做一次判断,即嵌套判断)全部拿过来,记录栈顶元素后再pop int myQueuePop(MyQueue* obj) {if (STEmpty(obj-popst)){while(!STEmpty(obj-pushst)){STPush(obj-popst,STTop(obj-pushst));STPop(obj-pushst);}}int frontSTTop(obj-popst);STPop(obj-popst);return front; }返回队列开头元素的函数myQueuePeek 和myQueuePop类似,返回popst的栈顶元素,如果popst为空,则将需要将pushst的数据拿过来 int myQueuePeek(MyQueue* obj) {if (STEmpty(obj-popst)){while(!STEmpty(obj-pushst)){STPush(obj-popst,STTop(obj-pushst));STPop(obj-pushst);}}return STTop(obj-popst); } 这里myQueuePop的第二种写法,让代码更简洁 int myQueuePop(MyQueue* obj) {int frontmyQueuePeek(obj);STPop(obj-popst);return front; }注意:使用myQueuePeek前要声明否则报错!!! 判断队列是否为空的函数myQueueEmpty 当两个栈都为空时,队列才为空 bool myQueueEmpty(MyQueue* obj) {return STEmpty(obj-pushst) STEmpty(obj-popst); } 队列销毁函数myQueueFree malloc是怎么开辟的,那队列就是怎么销毁的 结构图 void myQueueFree(MyQueue* obj) {STDestory(obj-pushst);STDestory(obj-popst);free(obj); } 2.提交结果
http://www.dnsts.com.cn/news/35302.html

相关文章:

  • 北滘高明网站建设淘宝上面建设网站安全么
  • 网站开发毕业设计开课题目新余专业的企业网站建设公司
  • 闽侯网站建设网页制作模板甜品蛋糕
  • 做网站设计需要什么软件创建自己的博客网站吗
  • 关键词推广方案沈阳免费seo关键词优化排名
  • 网站的优化承诺wordpress分享微信插件下载
  • 阿里云建站论坛网站写html代码用什么软件
  • 网站流量不够怎么办佛山网站设计讯息
  • 网站设计怎么做一点首页就跳转广州越秀区房价多少钱一平方
  • 周口市住房和城乡建设局网站网站如何验证登陆状态
  • 网站建设 个人模板下载微信小程序网站开发教程
  • 网站开发外包不给ftp网页美工设计教学
  • 怎么查网站是否备案如何在百度做推广
  • 建设网站类的论文中国建设银行手机银行下载官方网站
  • 梅州建设工程交易中心网站外网访问内网wordpress
  • 大连做网站o2o服务平台
  • 匿名ip访问网站受限怎么在本地搭建网站
  • 域名注册空间网站国家电网公司人力资源招聘平台
  • 爬虫 做资讯网站cms内容网站管理系统
  • 游戏网站建设成功案例四川住房与城乡建设厅网站
  • 网站关键词优化代码团队建设网站介绍
  • 手机网站制作价格潍坊网站制作套餐
  • 闵行网站搭建哪里有建自己的网站用多少钱
  • net网站建设语言建筑服务网站企业
  • 临潼网站建设个体工商注册查询平台
  • 做网站的技术路线十三五专业建设规划
  • 网站建设百度推广说词2手房产App网站开发
  • 网站有竞价的统计怎么加百度统计正能量网站地址链接免费
  • 漯河网站建设e如何建设网站公司
  • 教你如何建设一个模板网站网站建设费进什么科目