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

国外外贸平台哪个网站最好容桂电子商务网站建设

国外外贸平台哪个网站最好,容桂电子商务网站建设,wordpress 主页图片,广告效果图用什么软件做力扣232 用栈实现队列 题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并…

力扣232 用栈实现队列

题目描述

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

实现 MyQueue 类:

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

说明:

  • 你 只能 使用标准的栈操作 —— 也就是只有 push to toppeek/pop from topsize, 和 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 Top=myQueuePeek(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://www.yayakq.cn/news/860165/

相关文章:

  • 企业网站数据库怎么改网站模块
  • 专业做数据的网站诸城网站做的好的
  • wordpress如何搬站免费设计装修网站
  • 网页设计比较好的网站西安网站建设方案
  • 站长工具 怎么做网站地图网站建设 会计科目
  • 网站模版开发怎么自己改自己做的网站的图片
  • 做网站_接活软件公司做网站
  • 广西建设厅网站公布WordPress论坛推广插件
  • 会做网站怎么赚钱代前导页的网站
  • 网站建设长春西宁做网站建设公司
  • 网站页面设计成品下载商家管理系统
  • 加拿大pc网站搭建没有域名的网站
  • 茶叶网站源码二次开发什么意思
  • wordpress盗版模板网站换域名seo怎么做
  • 网站申请淮南服装网站建设地址
  • 西安创意网站建设广西做网站找谁
  • 建站宝盒自助建站系统怎么做科技小制作视频网站
  • 做网站底部不显示中文怎么回事做词云的在线网站
  • 用织梦做模板网站获取网页 代码 做网站
  • 做一个简单网站用笔记本做网站
  • 网站有死链接怎么办国家企业官网
  • 许昌做网站团队沈阳企业制作网站
  • 咋建网站做交通分析的网站
  • 去年做哪个网站致富甘肃项目信息网
  • 站长友情链接wordpress支持手机吗
  • 受欢迎的聊城网站建设软件开发工具都有哪些
  • 福建搜索引擎优化网站的优化用什么软件
  • 建网站的费用是多少建设工程机械职业技能鉴定
  • 太原网站建设与维护口碑营销的案例
  • 买服务器做网站主机诚信网站体系建设工作