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

南充市住房和城乡建设局考试网站微营销平台

南充市住房和城乡建设局考试网站,微营销平台,资阳建设网站,学校网站建设的作用原题链接:https://leetcode.cn/problems/implement-queue-using-stacks/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 用两个栈实现,一个栈进行入队操作,另一个栈进行出队操作。 出队操作: 当出队的栈…

原题链接:https://leetcode.cn/problems/implement-queue-using-stacks/

目录

1. 题目描述

2. 思路分析

3. 代码实现


1. 题目描述

 

2. 思路分析

用两个栈实现,一个栈进行入队操作,另一个栈进行出队操作。
出队操作: 当出队的栈不为空时,直接进行出栈操作;如果为空,需要把入队的栈元素全部导入到出队的栈,然后再进行出栈操作

3. 代码实现

typedef int STDataType;
#define INIT_CAPACITY 4
typedef struct Stack
{STDataType* a;int top;  //栈顶int capacity;  //容量
}ST;//初始化栈
void STInit(ST* ps);
//入栈
void STPush(ST* ps, STDataType x);
//出栈
void STPop(ST* ps);
//获取栈顶元素
STDataType STTop(ST* ps);
//获取栈中有效元素个数
int STSize(ST* ps);
//检测栈是否为空
bool STEmpty(ST* ps);
//销毁栈
void STDestroy(ST* ps);void STInit(ST* ps)
{assert(ps);ps->a = NULL;ps->top = 0;ps->capacity = 0;
}void STPush(ST* ps, STDataType x)
{assert(ps);if (ps->top == ps->capacity){int newCapacity = ps->capacity == 0 ? INIT_CAPACITY : ps->capacity * 2;STDataType* tmp = (STDataType*)realloc(ps->a, sizeof(STDataType) * newCapacity);if (tmp == NULL){perror("realloc failed");exit(-1);}ps->a = tmp;ps->capacity = newCapacity;}ps->a[ps->top] = x;ps->top++;
}void STPop(ST* ps)
{assert(ps);//空assert(ps->a > 0);--ps->top;
}STDataType STTop(ST* ps)
{assert(ps);//空assert(ps->a > 0);return ps->a[ps->top - 1];
}int STSize(ST* ps)
{assert(ps);return ps->top;
}bool STEmpty(ST* ps)
{assert(ps);return ps->top == 0;
}void STDestroy(ST* ps)
{assert(ps);ps->a = NULL;ps->top = ps->capacity = 0;
}typedef struct {ST pushst;ST popst;
} MyQueue;MyQueue* myQueueCreate() {MyQueue *obj=(MyQueue*)malloc(sizeof(MyQueue));STInit(&obj->pushst);STInit(&obj->popst);return obj;
}void myQueuePush(MyQueue* obj, int x) {STPush(&obj->pushst,x);
}int myQueuePeek(MyQueue* obj) {if(STEmpty(&obj->popst)){//捯数据while(!STEmpty(&obj->pushst)){STPush(&obj->popst,STTop(&obj->pushst));STPop(&obj->pushst);}}return STTop(&obj->popst);
}int myQueuePop(MyQueue* obj) {int front=myQueuePeek(obj);STPop(&obj->popst);return front;
}bool myQueueEmpty(MyQueue* obj) {return STEmpty(&obj->popst)&&STEmpty(&obj->pushst);
}void myQueueFree(MyQueue* obj) {STDestroy(&obj->popst);STDestroy(&obj->pushst);free(obj);
}/*** Your MyQueue struct will be instantiated and called as such:* MyQueue* obj = myQueueCreate();* myQueuePush(obj, x);* int param_2 = myQueuePop(obj);* int param_3 = myQueuePeek(obj);* bool param_4 = myQueueEmpty(obj);* myQueueFree(obj);
*/

 

http://www.ds6.com.cn/news/47217.html

相关文章:

  • 松江老城做网站2023年最新新闻简短摘抄
  • 服务比较好的网页传奇seo蜘蛛池
  • .net cms网站管理系统湖南seo快速排名
  • 建设厅的工程造价网站360优化大师官方下载最新版
  • 电子商务网站基础建设百度网盘电脑版
  • 我爱做妈妈网站cms建站系统
  • 苹果直播软件下载网站最新国内新闻10条
  • 珠海网站建设招聘网站快速搜索
  • 移动端网站建设的方案企业网站管理系统源码
  • 德阳哪里有做网站的今日新闻快报
  • 做印尼电商独立站的网站百度电脑版
  • 做木箱的网站百度一下你就知道官方网站
  • 国外博客写作网站seo职位
  • 太原网站开发团队网络教学平台
  • 淄博乐达信息技术网站网址导航该如何推广
  • 北京网站建设公司报价网络营销方案
  • 海口专业网站搭建批发百度搜索官方网站
  • 铁岭做网站sem竞价推广公司
  • 太湖云建站网站建设seo上首页排名
  • 网站建设中最有效网站推广方式制作网站软件
  • 重庆网站建设咨询徐汇网站建设
  • 策划网站做推广的公司重庆百度seo排名优化软件
  • wordpress日期控件海城seo网站排名优化推广
  • phpcms 网站搬家无法更新urlseo专业培训需要多久
  • 南宁网站如何制作谷歌seo服务商
  • 网络营销的有形层优化seo系统
  • h5就是手机端网页吗手机游戏性能优化软件
  • 浏览器网站有哪些青岛seo结算
  • 0716网站建设简述什么是网络营销
  • 做网站的技术要求网址缩短