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

网站当前位置怎么做网络服务器

网站当前位置怎么做,网络服务器,wordpress企业网站制作,外国人做的篆字网站这里写目录标题 用两个队列实现栈题目描述思路:结构逻辑图如下完整解析代码 用两个队列实现栈 leetcode 题目描述 思路: 准备两个队列,第一个队列依次出队到只剩一个数据时停止,将已出队的数据依次入队到第二个队列,…

这里写目录标题

  • 用两个队列实现栈
    • 题目描述
    • 思路:
    • 结构逻辑图如下
    • 完整解析代码

用两个队列实现栈

leetcode

题目描述

在这里插入图片描述
在这里插入图片描述


思路:

准备两个队列,第一个队列依次出队到只剩一个数据时停止,将已出队的数据依次入队到第二个队列,将第一个队列仅剩的一个数据出队即实现了栈的出栈。入栈时哪个队列不为空则在哪个队列入队。
在这里插入图片描述

结构逻辑图如下


在这里插入图片描述


完整解析代码

typedef int QDataType;
typedef struct QueueNode
{struct QueueNode* next;QDataType data;
}QNode;typedef struct Queue
{QNode* phead;QNode* ptail;int size;
}Queue;void QueueInit(Queue* pq)
{assert(pq);pq->phead = NULL;pq->ptail = NULL;pq->size = 0;
}
void QueueDestroy(Queue* pq)
{assert(pq);QNode* cur = pq->phead;while (cur) {QNode* next = cur->next;free(cur);cur = next;}pq->phead = pq->ptail = NULL;pq->size = 0;
}
void QueuePush(Queue* pq, QDataType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));if (newnode == NULL) {perror("mallloc fail\n");return;}newnode->data = x;newnode->next = NULL;if (pq->ptail == NULL) {assert(pq->phead == NULL);pq->phead = pq->ptail = newnode;}else {pq->ptail->next = newnode;pq->ptail = newnode;}pq->size++;
}
bool QueueEmpty(Queue* pq)
{assert(pq);return pq->size == 0;
}
void QueuePop(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));if (pq->phead->next == NULL) {free(pq->phead);pq->phead = pq->ptail = NULL;}else {QNode* next = pq->phead->next;free(pq->phead);pq->phead = next;}pq->size--;
}
QDataType QueueFront(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->phead->data;
}
QDataType QueueBack(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->ptail->data;
}
int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}//------以下为OJ提供-------typedef struct {Queue q1;Queue q2;
} MyStack;MyStack* myStackCreate() {MyStack* obj = (MyStack*)malloc(sizeof(MyStack));if (obj == NULL) {perror("malloc fail");return NULL;}QueueInit(&obj->q1);QueueInit(&obj->q2);return obj;
}void myStackPush(MyStack* obj, int x) {if (!QueueEmpty(&obj->q1)) {QueuePush(&obj->q1, x);}else {QueuePush(&obj->q2, x);}
}int myStackPop(MyStack* obj) {Queue* pEmptyQ = &obj->q1;Queue* pNonEmptyQ = &obj->q2;if (!QueueEmpty(&obj->q1)) {pEmptyQ = &obj->q2;pNonEmptyQ = &obj->q1;}while (QueueSize(pNonEmptyQ) > 1) {QueuePush(pEmptyQ, QueueFront(pNonEmptyQ));QueuePop(pNonEmptyQ);}int top = QueueFront(pNonEmptyQ);QueuePop(pNonEmptyQ);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.dt0577.cn/news/22083.html

相关文章:

  • 廊坊怎么做网站网络销售适合什么人做
  • apple开发者中心seo五大经验分享
  • 中国建设网站下载安装网站多久被百度收录
  • 做门户网站建设多少钱河南seo网站多少钱
  • 做网站最有名的公司百度网盟推广
  • 机票订购系统网站开发需求分析脚本外链平台
  • b2c电子商务网站开发怎么开通百度推广账号
  • 课程网站开发流程图及原型图厦门网站快速排名优化
  • 获取页面内容wordpress搜索引擎优化方式
  • 如何做网站的网页做网站找哪个公司好
  • 雨花区网站建设市场推广策略
  • dwcs3做网站产品故事软文案例
  • 做翻译赚钱的网站上海seo服务
  • 为何网站需改版seo软件
  • 网站支付宝怎么做的汕头网站建设推广
  • 网站建设 还有需求吗网上营销方式和方法
  • 现在做个人网站市场调研报告怎么写的
  • 做网站可以提些什么意见营销网站推荐
  • 二季域名做网站营销方案推广
  • 深圳高端做网站公司qq推广网站
  • 2023年2月份广州疫情怎么样seo教程自学
  • 哈尔滨快速建站专业定制下载手机百度最新版
  • 定位网站关键词云浮新增确诊病例30例
  • 如何用xampp做网站外贸seo推广公司
  • 玉溪网站建设seo和sem是什么意思
  • 怎么学习制作网站dz论坛seo设置
  • wordpress建站以后宁波专业seo外包
  • 闵行网站制作公司关键词查网址
  • 网站制作培训速成班站长统计软件
  • 重庆自助建站模板优化关键词具体要怎么做