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

网站开发公司基本业务流程图佛山市多语言营销型网站建站

网站开发公司基本业务流程图,佛山市多语言营销型网站建站,今天福州头条新闻,苏州网站建设设计制作公司这里是栈的源代码:栈和队列的实现 当然,自己也可以写一个栈来用,对题目来说不影响,只要符合栈的特点就行。 题目: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、pe…

 这里是栈的源代码:栈和队列的实现

当然,自己也可以写一个栈来用,对题目来说不影响,只要符合栈的特点就行。

题目:

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):

实现 MyQueue 类:

  • void push(int x) 将元素 x 推到队列的末尾
  • int pop() 从队列的开头移除并返回元素
  • int peek() 返回队列开头的元素
  • boolean empty() 如果队列为空,返回 true ;否则,返回 false

题解: 

做题前需要的栈:

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdbool.h>typedef int DataType;
typedef struct Stack
{DataType* data;int top;int capacity;
}Stack;void Init(Stack *st);
void Push(Stack* st, DataType x);
void Pop(Stack* st);
DataType GetTop(Stack* st);
bool Empty(Stack* st);
void Destroy(Stack* st);
int Size(Stack* st);void Init(Stack* st)
{assert(st);st->data = NULL;st->top = 0;st->capacity = 0;
}void Push(Stack* st, DataType x)
{assert(st);if (st->capacity == st->top){int newcapacity = (st->capacity == 0) ? 4 : st->capacity * 2;DataType* temp = (DataType*)realloc(st->data, sizeof(DataType) * newcapacity);if (temp == NULL){perror("realloc fail");exit(-1);}st->data = temp;st->capacity = newcapacity;}st->data[st->top++] = x;
}void Pop(Stack* st)
{assert(st);assert(st->top > 0);st->top--;
}DataType GetTop(Stack* st)
{assert(st);assert(st->top > 0);return st->data[st->top - 1];
}bool Empty(Stack* st)
{assert(st);return (st->top == 0);
}void Destroy(Stack* st)
{assert(st);free(st->data);st->data = NULL;st->top = st->capacity = 0;}int Size(Stack* st)
{assert(st);return st->top;
}


 

题目正题:  


​
//定义出两个栈
typedef struct 
{Stack push;Stack pop;
} MyQueue;​

//初始化队列
MyQueue* myQueueCreate() 
{MyQueue* obj = (MyQueue*)malloc(sizeof(MyQueue));Init(&obj->push);Init(&obj->pop);return obj;
}

//向队列中插入元素
void myQueuePush(MyQueue* obj, int x) 
{Push(&obj->push,x);
}

//元素出队列
int myQueuePop(MyQueue* obj) 
{int ret = myQueuePeek(obj);Pop(&obj->pop);return ret;
}

//返回队列开头的元素
int myQueuePeek(MyQueue* obj) 
{if(Empty(&obj->pop)){int size = Size(&obj->push);for(int i=0; i<size; i++){Push(&obj->pop,GetTop(&obj->push));Pop(&obj->push);}}return GetTop(&obj->pop);
}

//判断队列是否为空
bool myQueueEmpty(MyQueue* obj) 
{return Empty(&obj->pop) && Empty(&obj->push);
}

//销毁队列
void myQueueFree(MyQueue* obj) 
{free((&obj->push)->data);free((&obj->pop)->data);free(obj);
}

Lei宝啊:我的主页鸭

愿所有美好如期而遇

http://www.yayakq.cn/news/497420/

相关文章:

  • html5网站后台制作企业oa系统免费
  • 作业做哪些类型的网站外贸soho怎么建网站
  • 深圳电商网站设计公司免费企业网站建设介绍
  • 外贸公司都是在什么网站做推广dede网站入侵
  • 做网站 用什么兼容wordpress宝塔开启ssl
  • 小说网站开发猪八戒重庆企业网站建设
  • 网站推广注意事项wordpress房产企业模板免费下载
  • 阿里云服务器添加网站做360网站优化
  • 上海建设工程学校网站网站建设图片素材
  • 网站设计建设方案破解网站后台密码有人做吗
  • 甘肃省建设厅质量投诉网站公司外贸网站
  • 上海当地网站网站建设费的摊销
  • 工业产品设计网站推荐云服务器是什么意思
  • 求一个做健身餐的网站网站备案空间备案吗
  • 交换广告是两个网站做友情链接吗如何做网站免费
  • android 旅游网站开发网站建设公司怎么挖掘客户
  • 网站开发图片加载过慢如何优化大连企业建设网站
  • 旅游网站 建设平台分析python编程语言的特点
  • 镇江手机网站制作网站页面示意图怎么做
  • 苏州网站制作 网站欢迎访问中国建设银行官网
  • 2个域名指向同一个网站udacity 网站开发
  • 织梦配置手机网站网站的设计开发
  • 网站案例演示做网站还赚钱么
  • 网站排名数据互联网营销公司排名
  • 网站为什么要维护获客平台有哪些
  • 用DW给网站做后台陇西哪里能学做网站
  • 医院网站建设政策如何搜索到自己的网站
  • 郑州网站优化平台购买保险的网站
  • 百度百科让做网站的超链接吗浏览器网站设置在哪里
  • 重庆重庆网站建设公司英文网站建设中