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

建设小说网站风险分析常用的seo工具推荐

建设小说网站风险分析,常用的seo工具推荐,上饶做网站哪家好哦,买的有域名怎么做网站目录 225. 用队列实现栈 题目 ​思路 代码 225. 用队列实现栈 225. 用队列实现栈 - 力扣(LeetCode)https://leetcode.cn/problems/implement-stack-using-queues/description/ 题目 请你仅使用两个队列实现一个后入先出(LIFO&#xff0…

目录

225. 用队列实现栈

题目

​思路

代码


225. 用队列实现栈

225. 用队列实现栈 - 力扣(LeetCode)icon-default.png?t=N7T8https://leetcode.cn/problems/implement-stack-using-queues/description/

题目

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(pushtoppop 和 empty)。

实现 MyStack 类:

  • void push(int x) 将元素 x 压入栈顶。
  • int pop() 移除并返回栈顶元素。
  • int top() 返回栈顶元素。
  • boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。

示例:

思路

两个队列,一个用来倒数据,一个用来删除数据

入队列时,入不为空的队列。出队列时,不为空队列的前N-1个数据倒入空队列中,剩下的就在队头,方便删除。

图示:

代码

//链式结构:表示队列
typedef int QDataType;
typedef struct QueueNode
{struct QueueNode* next;QDataType data;
}QNode;//队列的结构
typedef struct Queue
{QNode* head;QNode* tail;int size;
}Que;
//初始化队列
void QueueInit(Que* pq);
//销毁队列
void QueueDestroy(Que* pq);
//队尾入队列
void QueuePush(Que* pq, QDataType x);
//队头出队列
void QueuePop(Que* pq);
//获取队列队头元素
QDataType QueueFront(Que* pq);
//获取队列队尾元素
QDataType QueueBack(Que* pq);
//检测队列是否为空,如果为空返回非零结果,如果非空返回0
bool QueueEmpty(Que* pq);
//检测队列中有效元素个数
int QueueSize(Que* pq);void QueueInit(Que* pq)
{assert(pq);pq->head = pq->tail = NULL;pq->size = 0;
}void QueueDestroy(Que* pq)
{assert(pq);QNode* cur = pq->head;while (cur){QNode* next = cur->next;free(cur);cur = next;}pq->head = pq->tail = NULL;pq->size = 0;
}void QueuePush(Que* pq, QDataType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));if (newnode == NULL){perror("malloc fail");exit(-1);}newnode->data = x;newnode->next = NULL;if (pq->tail == NULL){pq->head = pq->tail = newnode;}else{pq->tail->next = newnode;pq->tail = newnode;}pq->size++;
}void QueuePop(Que* pq)
{assert(pq);assert(!QueueEmpty(pq));if (pq->head->next == NULL){free(pq->head);pq->head = pq->tail = NULL;}else{QNode* next = pq->head->next;free(pq->head);pq->head = next;}pq->size--;
}QDataType QueueFront(Que* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->head->data;
}QDataType QueueBack(Que* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->tail->data;
}bool QueueEmpty(Que* pq)
{assert(pq);return pq->head == NULL;
}int QueueSize(Que* pq)
{assert(pq);return pq->size;
}typedef struct {Que q1;Que q2;
} MyStack;MyStack* myStackCreate() {MyStack* pst=(MyStack*)malloc(sizeof(MyStack));QueueInit(&pst->q1);QueueInit(&pst->q2);return pst;
}void myStackPush(MyStack* obj, int x) {if(!QueueEmpty(&obj->q1)){QueuePush(&obj->q1,x);}else{QueuePush(&obj->q2,x);}
}int myStackPop(MyStack* obj) {Que* empty=&obj->q1;Que* nonEmpty=&obj->q2;if(!QueueEmpty(&obj->q1)){nonEmpty=&obj->q1;empty=&obj->q2;}while(QueueSize(nonEmpty)>1){QueuePush(empty,QueueFront(nonEmpty));QueuePop(nonEmpty);}int top=QueueFront(nonEmpty);QueuePop(nonEmpty);return top;
}int myStackTop(MyStack* obj) {if(!QueueEmpty(&obj->q1)){return QueueBack(&obj->q1);}else{return QueueBack(&obj->q2);}
}bool myStackEmpty(MyStack* obj) {return QueueEmpty(&obj->q1)&&QueueEmpty(&obj->q2);
}void myStackFree(MyStack* obj) {QueueDestroy(&obj->q1);QueueDestroy(&obj->q2);free(obj);
}

http://www.zhongyajixie.com/news/10588.html

相关文章:

  • 东莞网站设计如何百度搜索智能精选入口
  • 一级a做爰电影免费观看网站制作网站的基本流程
  • 俄语培训网站建设免费大数据平台
  • 别人的网站是怎么做的汨罗网站seo
  • 美国网站不备案 怎样打击网络色情百度关键词优化软件如何
  • 苏州网站建设哪家快网站排名优化多少钱
  • 企业邮箱地址格式域名年龄对seo的影响
  • 看强 的搜外网 seo教程
  • wordpress图片自动居中优化大师客服
  • 河南建网站seo网站推广专员
  • 甘肃省城乡住房建设厅网站搜索引擎营销推广
  • 网站可以做多少事情googleplay商店
  • 如何进行个人网页制作长沙官网seo技术厂家
  • 客服做的比较好的网站软文网站有哪些
  • 中国免费网站服务器下载地址百度广告投放平台官网
  • 做招聘网站需要多少钱登录百度账号
  • app软件下载安装官方免费下载seo快速排名软件品牌
  • 徐州网站建设电话营销推广运营
  • 可信的邢台做网站国外比较开放的社交软件
  • wordpress制作购物网站网络营销实践总结报告
  • 北京网站制作公司电话爱站网关键词长尾挖掘
  • 咸宁网站seo短视频seo排名
  • 免费网站建设那个好互联网推广员是做什么的
  • 做网站是不是需要服务器怎么提高百度关键词排名
  • 重庆社区app最新版本下载池州网站seo
  • 建设网站的费用网站优化排名哪家好
  • 专业网站开发网站搭建教程
  • 建网站需要什么语言网络舆情案例分析
  • 婺城区建设局网站中国十大搜索引擎排名
  • 二级域名网站优化百度快速收录教程