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

全国疫情风险区域汇总seo技术网

全国疫情风险区域汇总,seo技术网,之梦英语版网站怎么做,大型web游戏这里是栈的源代码:栈和队列的实现 当然,自己也可以写一个栈来用,对题目来说不影响,只要符合栈的特点就行。 题目: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、pe…

 这里是栈的源代码:栈和队列的实现

当然,自己也可以写一个栈来用,对题目来说不影响,只要符合栈的特点就行。

题目:

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):

实现 MyQueue 类:

  • void push(int x) 将元素 x 推到队列的末尾
  • int pop() 从队列的开头移除并返回元素
  • int peek() 返回队列开头的元素
  • boolean empty() 如果队列为空,返回 true ;否则,返回 false

题解: 

做题前需要的栈:

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>typedef int DataType;
typedef struct Stack
{DataType* data;int top;int capacity;
}Stack;void Init(Stack *st);
void Push(Stack* st, DataType x);
void Pop(Stack* st);
DataType GetTop(Stack* st);
bool Empty(Stack* st);
void Destroy(Stack* st);
int Size(Stack* st);void Init(Stack* st)
{assert(st);st->data = NULL;st->top = 0;st->capacity = 0;
}void Push(Stack* st, DataType x)
{assert(st);if (st->capacity == st->top){int newcapacity = (st->capacity == 0) ? 4 : st->capacity * 2;DataType* temp = (DataType*)realloc(st->data, sizeof(DataType) * newcapacity);if (temp == NULL){perror("realloc fail");exit(-1);}st->data = temp;st->capacity = newcapacity;}st->data[st->top++] = x;
}void Pop(Stack* st)
{assert(st);assert(st->top > 0);st->top--;
}DataType GetTop(Stack* st)
{assert(st);assert(st->top > 0);return st->data[st->top - 1];
}bool Empty(Stack* st)
{assert(st);return (st->top == 0);
}void Destroy(Stack* st)
{assert(st);free(st->data);st->data = NULL;st->top = st->capacity = 0;}int Size(Stack* st)
{assert(st);return st->top;
}


 

题目正题:  


​
//定义出两个栈
typedef struct 
{Stack push;Stack pop;
} MyQueue;​

//初始化队列
MyQueue* myQueueCreate() 
{MyQueue* obj = (MyQueue*)malloc(sizeof(MyQueue));Init(&obj->push);Init(&obj->pop);return obj;
}

//向队列中插入元素
void myQueuePush(MyQueue* obj, int x) 
{Push(&obj->push,x);
}

//元素出队列
int myQueuePop(MyQueue* obj) 
{int ret = myQueuePeek(obj);Pop(&obj->pop);return ret;
}

//返回队列开头的元素
int myQueuePeek(MyQueue* obj) 
{if(Empty(&obj->pop)){int size = Size(&obj->push);for(int i=0; i<size; i++){Push(&obj->pop,GetTop(&obj->push));Pop(&obj->push);}}return GetTop(&obj->pop);
}

//判断队列是否为空
bool myQueueEmpty(MyQueue* obj) 
{return Empty(&obj->pop) && Empty(&obj->push);
}

//销毁队列
void myQueueFree(MyQueue* obj) 
{free((&obj->push)->data);free((&obj->pop)->data);free(obj);
}

Lei宝啊:我的主页鸭

愿所有美好如期而遇

http://www.15wanjia.com/news/17860.html

相关文章:

  • 做网站制作步骤如何开网站呢
  • 农行网站不出动画怎么做抖音关键词排名优化软件
  • 政府门户网站设计模板seo页面优化的方法
  • 网站备案代码厦门百度关键词seo收费
  • 规模以上工业企业划分标准seo关键词推广价格
  • 网站开发公司方案报价湘潭网站设计
  • 可以做问答的网站青岛做网站推广
  • 小甲鱼网站开发网络推广是啥
  • 汉语国际网站建设自媒体培训
  • 文件传输协议登录网站百度网站收录提交
  • 企业网站建设要求线上推广渠道
  • 餐饮公司的网站建设保定seo推广
  • dw做网站一般是多大的尺寸网页推广怎么收取费用
  • 做网站报价出名的广州网站设计公司
  • 网站一年费用河南百度推广代理商
  • 政府网站信息公开管理培训课程
  • 平顶山做网站公司百度app关键词优化
  • 网站建设的步骤以及流程谷歌商店下载官网
  • 台湾做甜品的网站广东深圳疫情最新消息
  • 做网站阿里云买哪个服务器好点b2b关键词排名工具
  • 免费的网站或软件百度竞价点击神器
  • 韩国原生ip站群服务器seo排名平台
  • 用lls建设一个网站软文推广是什么意思?
  • 国外设计网站pinterest怎么打不开广州疫情最新消息今天封城了
  • 做pc端网站平台seo百度快速排名软件
  • 厦门优秀网站建设最近最新新闻
  • 做h5最好的网站关键词规划师工具
  • 中国建设银行官网站地推团队联系方式
  • 有哪些网站可以做推广包包苏州seo服务
  • 安娜尔返利机器人怎么做网站关键词查询的分析网站