当前位置: 首页 > 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.laogonggong.com/news/84950.html

相关文章:

  • 网站被人恶意刷流量蔬菜基地做网站合适吗
  • 做网站用什么后台wordpress自定义分类名称
  • 东莞教育网站建设跨境电商选品
  • 大气的企业网站源码上海网络推广专员
  • 服务器 网站建设 过程辽宁平台网站建设平台
  • 网站屏蔽ip地址国内做家具外贸的网站有哪些
  • 韶关专业网站建设教程租机网站开发
  • 吉安seo网站快速排名学校建网站
  • 手机网站字体大小规范深圳网页制作搜行者seo
  • 儿童网站设计模板新的房地产网站怎么做SEO
  • 网站专业建设做网站接单渠道
  • 无锡手机网站建设服务在福州做网站
  • 企业网站 微信里怎么做学做网站视频论坛
  • 金融行业网站模板建设本地网站
  • 姜堰 做网站电子商务网站建设项目的阶段的划分
  • seo外贸网站制作h5页面制作教程
  • 上海网站开发公司电话南京门户网站建设
  • wordpress多网站建设oa软件定制开发
  • 网站建设 本溪红海传媒chrome不安全的网站设置
  • 人人建站刷关键词排名软件有用吗
  • 江西医院网站建设中通服建设有限公司网站
  • 做营销型网站服务做移动类网站的书推荐
  • 衡阳做淘宝网站百度竞价和优化的区别
  • 微信网站开场动画台州网站建设模板
  • 个人网站有哪些网站开发教学大纲
  • 网站群 意义深圳市光明建设发展集团网站
  • 自学手机网站开发企业网站建立策划书
  • 商城网站建设运营方案wordpress提示密码不对
  • 做我的奴隶腾讯网站沈阳百度快照优化公司
  • 余姚网站建设余姚医疗器械查询官网