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

阿里云搭建多个网站app推广接单平台

阿里云搭建多个网站,app推广接单平台,盗版视频网站怎么做的,网页图片怎么下载分享一首歌曲吧,希望在枯燥的刷题生活中带给你希望和勇气,加油! 题目: 请你仅使用两个队列实现一个后入先出(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.tj-hxxt.cn/news/64348.html

相关文章:

  • 用wordpress建站一个人可以吗百度一下官方网址
  • 自己想做个网站怎么做的列举网络推广的方式
  • 建设网站服务器怎么弄seo关键词排名优化如何
  • 网站建设需求计划seo培训价格
  • app开发制作平台网站建设seo技巧优化
  • 网站编辑seo社交媒体营销策略有哪些
  • 成都创新互联做网站企业网站模板html
  • 电子商务网站规划与建设论文嘉兴seo计费管理
  • 做网站有什么好处怎么自己做一个网站平台
  • 做网站是用的那个开发软件千锋教育和达内哪个好
  • 用帝国cms做视频网站天津seo实战培训
  • 做网站老板不发工资我拿尾款线上营销
  • 网站建设与开发专业大数据分析网站
  • 互联网公司排名中国2022seo的概念
  • 做软装什么网站可以吗兰州网站优化
  • wordpress选了中文还是英文版东莞网站建设优化技术
  • 关于网站开发的外文翻译优化神马网站关键词排名价格
  • 东莞阳光网招聘官网厦门seo专业培训学校
  • wordpress 4.3.4下载成都百度网站排名优化
  • 东营市建设工程信息网百度seo快速见效方法
  • 济南建设个人网站平台购物链接
  • 前端 网站开发 常见功能实现怎么百度推广
  • 网站优化推广排名西安关键词快速排名
  • 做网站建网站优化推广公司排名
  • 网页设计和网站开发哪个好爱站网是什么
  • 三更app下载网站网站站外优化推广方式
  • 大型网站开发语言排名在线推广企业网站的方法有哪些
  • 站长工具 怎么做网站地图免费的短视频app大全下载
  • 哈尔滨仿站定制模板建站seo怎么做优化排名
  • 温州快速网站建设排名友链外链app