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

wordpress全站公告域名解析在线

wordpress全站公告,域名解析在线,云南澄江县建设局网站,wordpress 本地建站力扣232 用栈实现队列 题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作#xff08;push、pop、peek、empty#xff09;#xff1a; 实现 MyQueue 类#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并…力扣232 用栈实现队列 题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作push、pop、peek、empty 实现 MyQueue 类 void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空返回 true 否则返回 false 说明 你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。你所使用的语言也许不支持栈。你可以使用 list 或者 deque双端队列来模拟一个栈只要是标准的栈操作即可。 思路分析 针对队列的四个功能我们逐一讲解并进行实现 1.void push(int x) 将元素 x 推到队列的末尾关于进队没有具体的返回值对于系统如何进行存储也没有过多要求我们就定义一个pushst用来进队元素的栈将元素直接push即可。 2.int pop() 从队列的开头移除并返回元素这里就有讲究了出栈是将最后进入的元素返回但出队却是将最先进入的元素返回但又不能取到栈底元素所以我们需要再定义一个栈来进行出队用定义为popst出队的时候只需要将pushst里的元素全部出栈进栈到popst中再返回popst栈顶元素自然就是需要出队的元素了。 3.int peek() 返回队列开头的元素此功能与上面的思路完全一样的但先实现此功能对于上面的出队功能会非常方便稍后在代码里会进行讲解。 4.boolean empty() 如果队列为空返回 true 否则返回 false 直接判断两个栈同时为空即可。 完整代码 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);// 初始化栈 void StackInit(Stack* ps) {assert(ps);ps-a NULL;ps-_capacity 0;ps-_top 0; }// 入栈 void StackPush(Stack* ps, STDataType data) {assert(ps);//检查是否栈满if (ps-_top ps-_capacity){int newcapacity ps-_capacity 0 ? 4 : ps-_capacity * 2;Stack* ptr realloc(ps-a, sizeof(STDataType) * newcapacity);if (ptr NULL){perror(realloc fail);return;}ps-a ptr;ps-_capacity newcapacity;}//入栈ps-a[ps-_top] data;ps-_top; }// 出栈 void StackPop(Stack* ps) {assert(ps);assert(ps-_top 0);ps-_top--; }// 获取栈顶元素 STDataType StackTop(Stack* ps) {assert(ps);assert(ps-_top 0);return ps-a[ps-_top-1]; }// 获取栈中有效元素个数 int StackSize(Stack* ps) {assert(ps);return ps-_top; } // 检测栈是否为空如果为空返回非零结果如果不为空返回0 int StackEmpty(Stack* ps) {assert(ps);if (ps-_top 0){return 1;}else{return 0;} }// 销毁栈 void StackDestroy(Stack* ps) {assert(ps);free(ps-a);ps-_capacity 0;ps-_top 0; }//实现区typedef struct {Stack popst;Stack pushst;} MyQueue;MyQueue* myQueueCreate() {MyQueue* obj(MyQueue*)malloc(sizeof(MyQueue));StackInit(obj-popst);StackInit(obj-pushst);return obj; } void myQueuePush(MyQueue* obj, int x) {StackPush(obj-pushst,x);}int myQueuePop(MyQueue* obj) {int TopmyQueuePeek(obj);//将peek的元素放到top里面StackPop(obj-popst);return Top; }int myQueuePeek(MyQueue* obj) {if(StackEmpty(obj-popst))//只要popst为空将pushst的数据放到popst中要考虑到push和pop同时有数据的情况{while(!StackEmpty(obj-pushst)){StackPush(obj-popst,StackTop(obj-pushst));StackPop(obj-pushst); } }return StackTop(obj-popst);//返回pop栈顶元素 }bool myQueueEmpty(MyQueue* obj) {return StackEmpty(obj-pushst)StackEmpty(obj-popst); }void myQueueFree(MyQueue* obj) {StackDestroy(obj-popst);StackDestroy(obj-pushst);free(obj); }/*** Your MyQueue struct will be instantiated and called as such:* MyQueue* obj myQueueCreate();* myQueuePush(obj, x);* int param_2 myQueuePop(obj);* int param_3 myQueuePeek(obj);* bool param_4 myQueueEmpty(obj);* myQueueFree(obj); */
http://wiki.neutronadmin.com/news/280058/

相关文章:

  • 驾校网站建设费用建设银行官方个人网站
  • ui怎样做网站pc版网站生成App
  • 福建建设执业资格注册管理中心网站外贸需要网站做生产车间展示
  • 北京天津网站设计制作多少钱网站优化
  • 四川欧瑞建设集团网站安卓app开发培训
  • 常熟做网站推广的吉林省建设工程信息网站
  • 做韩服的视频网站室内建筑设计
  • 上海网站建设报价方案嘉兴网站定制公司
  • 网站程序源码上传到空间打开网站首页还是显示的程序原源代码专业的公司网页制作
  • 如何做律所网站Wordpress不能修改导航名称
  • 网站开发工作室简介wordpress点击才弹窗插件
  • 水头做网站的公司减肥网站开发目的
  • 广西建设厅网站地址asp企业营销型网站建设
  • 做网站基本东西中山 家居 骏域网站建设专家
  • idea建设完整的网站招聘模板图片
  • 网站素材库免费有哪些下载软件的应用
  • 做网站没有手机端常州建网站需要多少钱
  • 中唯建设工程有限公司网站网站友情链接美化代码
  • 教育网站建设改版揭阳网站建设维护
  • .net做网站用mvc推广品牌的策划方案
  • 营销型网站建设就找山东艾乎建站WordPress网站修改
  • 做网站需要服务器和什么网站建设的意义以及重要性
  • 自己做的网站点进去很卡网页搜索框的记录怎么删除
  • 怎么用7牛云做网站在哪里找个人做网站的
  • 浩博建设集团网站网站建设公众号小程序属于什么
  • 哪个网站微博做的最好网站做seo安全吗
  • 广州设计网站培训班智能建站系统下载
  • 多个网站做计划全网seo优化电话
  • 在対网站做可能的来自内部和外部的攻击透明网站模板
  • 福州 网站建设企业网站效果图