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

微信公众号的网站开发搜索引擎营销的步骤

微信公众号的网站开发,搜索引擎营销的步骤,做网站公司排名电话,菜谱网站手机源码题目 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开…

题目

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(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 <errno.h>
#include <stdbool.h>typedef int STDataType;
typedef struct Stack
{STDataType* a;int top;int capacity;
}ST;void STInit(ST* pst);
void STDestroy(ST* pst);
void STPush(ST* pst, STDataType x);
void STPop(ST* pst);
STDataType STTop(ST* pst);
bool STEmpty(ST* pst);
int STSize(ST* pst);void STInit(ST* pst)
{assert(pst);pst->a = NULL;pst->top = 0; //指向栈顶元素的下一个位置pst->capacity = 0;
}void STDestroy(ST* pst)
{assert(pst);free(pst->a);pst->a = NULL;pst->top = 0;pst->capacity = 0;
}void STPush(ST* pst, STDataType x)
{if (pst->top == pst->capacity){int newcapacity = pst->capacity == 0 ? 4 : pst->capacity * 2;STDataType* tmp = (STDataType*)realloc(pst->a, newcapacity * sizeof(STDataType));if (tmp == NULL){perror("realloc fail");return;}pst->a = tmp;pst->capacity = newcapacity;}pst->a[pst->top] = x;pst->top++;
}void STPop(ST* pst)
{assert(pst);assert(!STEmpty(pst));pst->top--;
}STDataType STTop(ST* pst)
{assert(pst);assert(!STEmpty(pst));return pst->a[pst->top - 1];
}bool STEmpty(ST* pst)
{assert(pst);return pst->top == 0;
}int STSize(ST* pst)
{assert(pst);return pst->top;
}typedef struct {ST pushst;ST popst;
} MyQueue;MyQueue* myQueueCreate() {MyQueue* obj = (MyQueue*)malloc(sizeof(MyQueue));STInit(&obj->pushst);STInit(&obj->popst);return obj;
}void myQueuePush(MyQueue* obj, int x) {STPush(&obj->pushst,x);
}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);
}int myQueuePop(MyQueue* obj) {int front =  myQueuePeek(obj);STPop(&obj->popst);return front;
}bool myQueueEmpty(MyQueue* obj) {return STEmpty(&obj->pushst) && STEmpty(&obj->popst);
}void myQueueFree(MyQueue* obj) {STDestroy(&obj->pushst);STDestroy(&obj->popst);free(obj);
}

http://www.mmbaike.com/news/95402.html

相关文章:

  • 备案号 不放在网站上软文范例100例
  • 武汉科技职业学院是大专吗河源seo
  • 四川高端网站建设全国疫情地区查询最新
  • 包装设计是什么网络优化
  • 汽油价格92号最新调整时间深圳seo排名
  • 做旅行攻略的网站好高州新闻 头条 今天
  • 设计logo网站侵权吗知乎最优化方法
  • 建筑公司资质等级分几级沈阳网站seo排名公司
  • 上海做网站高端咨询网络服务商
  • 临沂网站建设网站推广域名收录查询工具
  • 网站建设成本预算sem竞价推广公司
  • 网站建设 东莞seo兼职怎么收费
  • 怎么做网站例如京东优化大师人工服务电话
  • 建站平台和网站建设的区别seo顾问公司
  • 龙口做网站es158seo怎么优化关键词排名培训
  • 马关网站建设网页百度
  • 中和华丰建设有限责任公司网站短视频代运营合作方案
  • 公司网页免费河南自助建站seo公司
  • 怎么判断代运营是真是假seo排名点击工具
  • 如何将百度云做成网站文件服务器网络营销服务的特点有哪些
  • 设计网站考虑哪些因素无锡网站建设方案优化
  • 国外做黄色网站竞价推广代运营
  • 企业网站建设如何去规划优秀的软文广告欣赏
  • ps软件网站有哪些功能近期热点新闻
  • 上海招聘网最新招聘2023seo搜索引擎优化怎么做
  • 网站开发w亿玛酷1订制重要新闻
  • 惠州做网站哪家公司好新闻媒体发布平台
  • 小企业网站建设怎么做好网络推广和竞价怎么做
  • 广州企业网站设计方案长沙seo关键词排名
  • 上海市建设厅网站查询百度seo视频教程