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

建设网站过程第一阶段苏州建设信息网

建设网站过程第一阶段,苏州建设信息网,微信微网站模板,外贸推广建站蓝颜seo牛题目描述: 请你仅使用两个队列实现一个后入先出#xff08;LIFO#xff09;的栈#xff0c;并支持普通栈的全部四种操作#xff08;push、top、pop 和 empty#xff09;。 实现 MyStack 类#xff1a; void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元…题目描述: 请你仅使用两个队列实现一个后入先出LIFO的栈并支持普通栈的全部四种操作push、top、pop 和 empty。 实现 MyStack 类 void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的返回 true 否则返回 false 。 注意 你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、size 和 is empty 这些操作。你所使用的语言也许不支持队列。 你可以使用 list 列表或者 deque双端队列来模拟一个队列 , 只要是标准的队列操作即可。 题目链接:力扣LeetCode官网 - 全球极客挚爱的技术成长平台 功能实现思路: 在实现这个题目之前得先完成队列的基本操作,可以参考文章:http://t.csdnimg.cn/3v2IZ 1. 出栈  现在我们有两个队列,假设在第一个队列里依次入了1 2 3 4 5,另一个队列为空队列 现在要出栈的话,应该把5出去,但是数据目前在队列里,出数据只能从队头出,所以可以把1 2 3 4依次出队列,并入到第二个队列中,此时就可以把5出去了,此时又是一个队列为空,另一个存着剩余的数据,再出栈的话,还按照这个方法即可 int myStackPop(MyStack* obj) {//由于不知道哪个队列为空队列,可以采用假设法Queue* empty obj-queue1;Queue* nonemptyobj-queue2;if(!QueueEmpty(obj-queue1)){emptyobj-queue2;nonemptyobj-queue1;}while(QueueSize(nonempty)1){QueuePush(empty,QueueFront(nonempty));QueuePop(nonempty);}int topQueueFront(nonempty);QueuePop(nonempty);return top; } 总结: 出栈操作相当于非空队列的队尾元素出队,此时需要把非空队列除最后一个元素之外的其他元素入队到空队列,然后出队最后一个队尾元素 2.入栈 入栈操作相当于在非空队列进行入队操作 void myStackPush(MyStack* obj, int x) {if(!QueueEmpty(obj-queue1)){QueuePush(obj-queue1,x);}else{QueuePush(obj-queue2,x);} } 3.判空 只要两个队列都没有元素就表示栈空 bool myStackEmpty(MyStack* obj) {return QueueEmpty(obj-queue1)QueueEmpty(obj-queue2); } 4.返回栈顶元素 即返回非空队列队尾元素 int myStackTop(MyStack* obj) {if(!QueueEmpty(obj-queue1)){return QueueTail(obj-queue1);}else{return QueueTail(obj-queue2);} } typedef int QDataType; typedef struct QueueNode {QDataType x;struct QueueNode* next; }Node;typedef struct Queue {Node* head;Node* tail;int size; }Queue;void QueueInit(Queue* ps) {assert(ps);ps-head ps-tail NULL;ps-size 0; }void QueuePush(Queue* ps, QDataType x) {assert(ps);//创建新节点Node* newnode (Node*)malloc(sizeof(Node));if (newnode NULL){perror(malloc);return;}newnode-next NULL;newnode-x x;//尾插if (ps-tail NULL){ps-head ps-tail newnode;}else{ps-tail-next newnode;ps-tail ps-tail-next;}ps-size; }void QueuePop(Queue* ps) {assert(ps);assert(ps-head);if (ps-head-next NULL){ps-head ps-tail NULL;}else{Node* next ps-head-next;free(ps-head);ps-head next;}ps-size--; }bool QueueEmpty(Queue* ps) {assert(ps);return ps-tail NULL; }QDataType QueueFront(Queue* ps) {assert(ps);assert(ps-head);return ps-head-x; }QDataType QueueTail(Queue* ps) {assert(ps);assert(ps-tail);return ps-tail-x; }int QueueSize(Queue* ps) {assert(ps);return ps-size; }void QueueDestory(Queue* ps) {assert(ps);Node* cur ps-head;while (cur){Node* next cur-next;free(cur);cur next;}ps-headps-tail NULL;ps-size0; }typedef struct {Queue queue1;Queue queue2; } MyStack;MyStack* myStackCreate() {MyStack* mystack(MyStack*)malloc(sizeof(MyStack));QueueInit(mystack-queue1);QueueInit(mystack-queue2);return mystack; }void myStackPush(MyStack* obj, int x) {if(!QueueEmpty(obj-queue1)){QueuePush(obj-queue1,x);}else{QueuePush(obj-queue2,x);} }int myStackPop(MyStack* obj) {Queue* empty obj-queue1;Queue* nonemptyobj-queue2;if(!QueueEmpty(obj-queue1)){emptyobj-queue2;nonemptyobj-queue1;}while(QueueSize(nonempty)1){QueuePush(empty,QueueFront(nonempty));QueuePop(nonempty);}int topQueueFront(nonempty);QueuePop(nonempty);return top; }int myStackTop(MyStack* obj) {if(!QueueEmpty(obj-queue1)){return QueueTail(obj-queue1);}else{return QueueTail(obj-queue2);} }bool myStackEmpty(MyStack* obj) {return QueueEmpty(obj-queue1)QueueEmpty(obj-queue2); }void myStackFree(MyStack* obj) {QueueDestory(obj-queue1);QueueDestory(obj-queue2);free(obj); }
http://www.sadfv.cn/news/232230/

相关文章:

  • 做推文封面的网站cd-wordpress
  • 团购模板网站dw代码写完之后怎么运行网页
  • 佛山企业网站自助建站网站收录怎么做
  • 网站建设与管理A卷广东住房建设厅网站
  • 做网站可以找设计公司吗微网站搭建费用
  • Wordpress防止图片盗链肇庆seo外包服务
  • 怎么建立网站的步骤有服务器有域名如何做网站
  • 网站建设销售合作合同范本推广引流要怎么做比较好
  • asp网站实现php栏目引流最好的推广方法
  • 网站不备案能用吗代做网站转账截图
  • 江西做网站哪家好wordpress qtan
  • 用中文版wordpress建英文站团购网站建立
  • 厦门市住房与城乡建设局网站做网站卖流量
  • 泰安网站推广 泰安网站建设做公众号需要网站
  • 福州公司网站建设商务网站建设实训
  • 网站建设 - 碧诺网络网络推广代理怎么做
  • 怎么给自己做网站开发app和网站的公司
  • 微信公众号微网站建设网络运营与网络营销是什么关系
  • 网站底部 设计做性的网站
  • 青州住房和城乡建设网站网络营销方案ppt
  • 漳州市住房和城乡建设局网站北京建站公司做网站价格
  • 速橙科技有限公司网站建设app平台运营及管理
  • 网站建设北京公司南京较好的网站制作公司
  • 云服务器做网站镜像类型选啥乌市网络营销
  • 建立什么样的网站好怎么样自己制作网页
  • 陕西省交通建设集团商界分公司网站自助商城网站建设
  • 网站如何伪静态襄阳微信网站建设
  • wordpress jquery插件网站seo工作
  • 东莞市五金有限公司 寮步 技术支持 网站建设园区 网站建设方案
  • 桐柏网站网站设计实施方案