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

海宁网站网站建设网站做友情链接

海宁网站网站建设,网站做友情链接,做行业网站广告能赚多少钱,网上书城网站开发的数据字典分享一首歌曲吧#xff0c;希望在枯燥的刷题生活中带给你希望和勇气#xff0c;加油#xff01; 题目#xff1a; 请你仅使用两个队列实现一个后入先出#xff08;LIFO#xff09;的栈#xff0c;并支持普通栈的全部四种操作#xff08;push、top、pop 和 empty#…分享一首歌曲吧希望在枯燥的刷题生活中带给你希望和勇气加油 题目 请你仅使用两个队列实现一个后入先出LIFO的栈并支持普通栈的全部四种操作push、top、pop 和 empty。 实现 MyStack 类 void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的返回 true 否则返回 false 。 题解  首先自己实现一个队列粘贴复制过去 注意这道题目队列的实现方法不同不会影响题目只要是个队列先进先出那么不管你是双向还是结构不同都不会影响题目的实现。 #include stdio.h #include stdlib.h #include assert.h #include stdbool.htypedef int DataType; typedef struct Queue {DataType data;struct Queue *next; }Queue;typedef struct Q {Queue* head;Queue* tail;int size; }Q;void Init(Q *qq); void Destroy(Q* qq); void QueuePush(Q* qq, DataType x); void QueuePop(Q* qq); DataType GetQueueFrontNum(Q* qq); DataType GetQueueBackNum(Q* qq); bool Empty(Q* qq); int Size(Q* qq);void Init(Q* qq) {assert(qq);qq-head NULL;qq-tail NULL;qq-size 0; }void QueuePush(Q* qq, DataType x) {assert(qq);Queue* temp (Queue*)malloc(sizeof(Queue));if (temp NULL){perror(malloc fail);exit(-1);}temp-data x;temp-next NULL;if (qq-tail NULL)qq-head qq-tail temp;else{qq-tail-next temp;qq-tail temp;}qq-size; }void QueuePop(Q* qq) {assert(qq);assert(!Empty(qq));if (qq-head qq-tail){free(qq-head);qq-head qq-tail NULL;}else{Queue* next qq-head-next;free(qq-head);qq-head next;}qq-size--; }DataType GetQueueFrontNum(Q* qq) {assert(qq);assert(!Empty(qq));return qq-head-data; }DataType GetQueueBackNum(Q* qq) {assert(qq);assert(!Empty(qq));return qq-tail-data; }bool Empty(Q* qq) {assert(qq);return qq-size 0; }void Destroy(Q* qq) {assert(qq);Queue *cur qq-head;while(cur){Queue *next cur-next;free(cur);cur next;}qq-head qq-tail NULL;qq-size 0; }int Size(Q* qq) {assert(qq);return qq-size; } 剩下的就是题目接口 typedef struct {Q q1;Q q2; } MyStack; MyStack* myStackCreate() {MyStack *st (MyStack*)malloc(sizeof(MyStack));Init(st-q1);Init(st-q2);return st; } void myStackPush(MyStack* obj, int x) {if(!Empty(obj-q1)){QueuePush(obj-q1,x);}else{QueuePush(obj-q2,x);} }int myStackPop(MyStack* obj) {Q *empty obj-q1;Q *obempty obj-q2;if(!Empty(obj-q1)){empty obj-q2;obempty obj-q1;}int sz Size(obempty) - 1;for(int i0; isz; i){QueuePush(empty,GetQueueFrontNum(obempty));QueuePop(obempty);}int num GetQueueFrontNum(obempty);QueuePop(obempty);return num; } int myStackTop(MyStack* obj) {if(!Empty(obj-q1)){return GetQueueBackNum(obj-q1);}else{return GetQueueBackNum(obj-q2);} } bool myStackEmpty(MyStack* obj) {return (obj-q1)-size 0 (obj-q2)-size 0; }void myStackFree(MyStack* obj) {Destroy(obj-q1);Destroy(obj-q2);free(obj); }
http://www.sadfv.cn/news/312854/

相关文章:

  • 哈尔滨大连工程建设信息网站设计兼职在哪平台可以接单
  • 个人博客appseo 适合哪些行业
  • 电子商务网站建设论文最新采购求购信息网站
  • 有口碑的网站建设公司建设一个淘宝客网站
  • 几度设计网站网站开发哪家便宜
  • 陶瓷 网站模板视频营销案例
  • 设计网站 杭州wordpress 添加 links
  • 网站解决方案网站建设的书籍
  • 自己在百度上可以做网站吗装饰公司网站如何布局
  • 网站的站点地图怎么做建网页用什么软件
  • 关于做网站网站建设报价费用是多少
  • 天坛网站建设html5在线编辑器
  • wordpress建站视频教程下载信用体系建设网站
  • 怎样自己弄一个网站如何在服务器里建设网站
  • 做贸易 公司网站放哪里深圳市在建项目查询
  • 建设网站的流程可分为哪几个阶段wordpress 3.5 官方中文版
  • 网站的域名用文字搜索怎么做wordpress收录难
  • 视觉差网站插件淘宝网页版登录入口官方
  • 家禽养殖公司网站怎么做网站的物理结构
  • 顺德网站建设如何镇江唐唐网络科技有限公司
  • 太仓企业网站建设价格新乡网站建设方案
  • 商丘做建设网站的公司网站app在线生成器
  • 大连装修网站推广网站qq在线状态
  • 成都青羊区网站建设精湛的佛山网站设计
  • idc网站源码下载wordpress 页面挂件
  • 开发平台指什么南宁seo计费管理
  • 西安百度网站快速优化深圳 设计
  • 黄山网站建设公司线上平面设计哪家培训好
  • 网站设计论文答辩问题seo排名软件哪个好
  • 四川手机响应式网站建设推荐化工网站建站模板下载