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

企业网站建立模板怎么做小红书广告投放平台

企业网站建立模板怎么做,小红书广告投放平台,徐州优化网站建设,北京网站建设市场分享一首歌曲吧,希望在枯燥的刷题生活中带给你希望和勇气,加油! 题目: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty&#…

分享一首歌曲吧,希望在枯燥的刷题生活中带给你希望和勇气,加油!

  

题目:

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

实现 MyStack 类:

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

题解: 

首先自己实现一个队列粘贴复制过去:

注意:这道题目队列的实现方法不同不会影响题目,只要是个队列,先进先出,那么不管你是双向还是结构不同,都不会影响题目的实现。

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>typedef int DataType;
typedef struct Queue
{DataType data;struct Queue *next;
}Queue;typedef struct Q
{Queue* head;Queue* tail;int size;
}Q;void Init(Q *qq);
void Destroy(Q* qq);
void QueuePush(Q* qq, DataType x);
void QueuePop(Q* qq);
DataType GetQueueFrontNum(Q* qq);
DataType GetQueueBackNum(Q* qq);
bool Empty(Q* qq);
int Size(Q* qq);void Init(Q* qq)
{assert(qq);qq->head = NULL;qq->tail = NULL;qq->size = 0;
}void QueuePush(Q* qq, DataType x)
{assert(qq);Queue* temp = (Queue*)malloc(sizeof(Queue));if (temp == NULL){perror("malloc fail");exit(-1);}temp->data = x;temp->next = NULL;if (qq->tail == NULL)qq->head = qq->tail = temp;else{qq->tail->next = temp;qq->tail = temp;}qq->size++;
}void QueuePop(Q* qq)
{assert(qq);assert(!Empty(qq));if (qq->head == qq->tail){free(qq->head);qq->head = qq->tail = NULL;}else{Queue* next = qq->head->next;free(qq->head);qq->head = next;}qq->size--;
}DataType GetQueueFrontNum(Q* qq)
{assert(qq);assert(!Empty(qq));return qq->head->data;
}DataType GetQueueBackNum(Q* qq)
{assert(qq);assert(!Empty(qq));return qq->tail->data;
}bool Empty(Q* qq)
{assert(qq);return qq->size == 0;
}void Destroy(Q* qq)
{assert(qq);Queue *cur = qq->head;while(cur){Queue *next = cur->next;free(cur);cur = next;}qq->head = qq->tail = NULL;qq->size = 0;
}int Size(Q* qq)
{assert(qq);return qq->size;
}

剩下的就是题目接口:

typedef struct {Q q1;Q q2;
} MyStack;
MyStack* myStackCreate() 
{MyStack *st = (MyStack*)malloc(sizeof(MyStack));Init(&st->q1);Init(&st->q2);return st;
}
void myStackPush(MyStack* obj, int x) 
{if(!Empty(&obj->q1)){QueuePush(&obj->q1,x);}else{QueuePush(&obj->q2,x);}
}
int myStackPop(MyStack* obj) 
{Q *empty = &obj->q1;Q *obempty = &obj->q2;if(!Empty(&obj->q1)){empty = &obj->q2;obempty = &obj->q1;}int sz = Size(obempty) - 1;for(int i=0; i<sz; i++){QueuePush(empty,GetQueueFrontNum(obempty));QueuePop(obempty);}int num = GetQueueFrontNum(obempty);QueuePop(obempty);return num;
}
int myStackTop(MyStack* obj) 
{if(!Empty(&obj->q1)){return GetQueueBackNum(&obj->q1);}else{return GetQueueBackNum(&obj->q2);}   
}
bool myStackEmpty(MyStack* obj) 
{return (&obj->q1)->size == 0 && (&obj->q2)->size == 0;
}
void myStackFree(MyStack* obj) 
{Destroy(&obj->q1);Destroy(&obj->q2);free(obj);
}

http://www.hkea.cn/news/12918/

相关文章:

  • 成都户外网站建设杭州推广公司排名
  • 浏览器秒玩小游戏入口seo引擎优化外包公司
  • 广西桂林新闻最新消息宁波seo快速排名
  • 做网站被骗五千多百度服务中心人工客服电话
  • 超链接到网站怎么做app推广兼职是诈骗吗
  • 西安网站建设管理深圳seo网络优化公司
  • 建设网站的必要性关键词统计工具有哪些
  • 前端工作一年工资多少正常网站优化公司
  • 做网站用网络平台推广是干什么
  • 手机版 演示 网站 触摸长春网站关键词推广
  • 做五金出口在哪个网站好点重庆seo技术教程
  • 公司改名网站备案西安优化seo托管
  • wordpress插件禁用郑州百度快照优化排名
  • 做p2p网站多少钱百度助手app免费下载
  • 做网站的公司属于什么行业电商网站订烟
  • 网页使用怎么做网站seo啥意思
  • 短视频seo公司青岛网络优化代理
  • 代码网站开发制作网页
  • 制作灯笼图片广州优化seo
  • 潍坊网页制作案例郑州网站优化
  • 天津做网站比较大的公司百度竞价排名名词解释
  • 极简新闻网站开发网站建设找哪家好
  • 做网站域名app开发费用一览表
  • wordpress子站共享用户名东莞服务好的营销型网站建设
  • 做www网站需要多少钱网络营销方案
  • 河北网站备案流程企业seo顾问
  • 广东汕头最新消息厦门seo关键词
  • 如何用 ftp上传网站一键搭建网站
  • c 网站开发简单实例教程今日新闻头条最新消息
  • 手机网站被禁止访问怎么设置打开sem和seo有什么区别