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

微博如何做的跟网站一样wordpress 静态化文件

微博如何做的跟网站一样,wordpress 静态化文件,asp做网站得多长时间,怎么做网站外贸目录 1.实现方法 过程详解 1.执行push 1->push 2->push 3->push 4 2.执行第一个pop 3.执行第二个pop 4.执行push 5->push 6 ​编辑 5.执行pop->pop->pop 代码实现 队列创建函数myQueueCreate 入队函数myQueuePush 出队函数myQueuePop 返回队列开头…

目录

1.实现方法

过程详解

1.执行push 1->push 2->push 3->push 4

2.执行第一个pop

 3.执行第二个pop

4.执行push 5->push 6

​编辑

 5.执行pop->pop->pop

代码实现

队列创建函数myQueueCreate

入队函数myQueuePush

出队函数myQueuePop

返回队列开头元素的函数myQueuePeek

判断队列是否为空的函数myQueueEmpty

队列销毁函数myQueueFree

2.提交结果


解决L19.【LeetCode笔记】用栈实现队列(方法1)遗留未讲的方法2

1.实现方法

过程详解

实现方法和方法1有较大的不同,一个栈用于入(push)数据,另一个栈(pop)用于出数据

对于"push 1->push 2->push 3->push 4->pop->pop->push 5->push 6->->pop->pop->pop"过程画图分析

初始化时两个栈都为空,随便选一个压入数据

1.执行push 1->push 2->push 3->push 4

2.执行第一个pop

按队列的性质,需要pop 1,则需要将2,3,4拿出放到另一个栈中

 3.执行第二个pop

按队列的性质,需要pop 2,此时直接对右侧栈pop

4.执行push 5->push 6

此时不能将5和6压入第二个栈,会改变队列的顺序,因此需要压入左侧的栈

 5.执行pop->pop->pop

前两个pop将3和4出队

最后一次pop需要将5和6压入右侧的栈才能以正确的顺序出队

通过分析,可以得出方法2的核心在:一个栈用于入数据,另一个栈用于出数据

代码实现

由过程详解可知,可以专门定义一个栈用于入数据,另一个栈用于出数据

typedef struct 
{ST pushst;ST popst;
} MyQueue;

队列创建函数myQueueCreate

MyQueue* myQueueCreate()
{MyQueue* obj=(MyQueue*)malloc(sizeof(MyQueue));if (obj==NULL){perror("malloc");return NULL;}STInit(&obj->pushst);STInit(&obj->popst);return obj;
}

入队函数myQueuePush

void myQueuePush(MyQueue* obj, int x) 
{STPush(&obj->pushst,x);
}

出队函数myQueuePop

这里要分类讨论,由"过程详解"可知,要判断栈popst是否为空,如果为空,需要将pushst的数据(前提是有数据,因此还要再做一次判断,即嵌套判断)全部拿过来,记录栈顶元素后再pop

int myQueuePop(MyQueue* obj) 
{if (STEmpty(&obj->popst)){while(!STEmpty(&obj->pushst)){STPush(&obj->popst,STTop(&obj->pushst));STPop(&obj->pushst);}}int front=STTop(&obj->popst);STPop(&obj->popst);return front;
}

返回队列开头元素的函数myQueuePeek

和myQueuePop类似,返回popst的栈顶元素,如果popst为空,则将需要将pushst的数据拿过来

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);
}

这里myQueuePop的第二种写法,让代码更简洁

int myQueuePop(MyQueue* obj)
{int front=myQueuePeek(obj);STPop(&obj->popst);return front;
}

注意:使用myQueuePeek前要声明否则报错!!!

判断队列是否为空的函数myQueueEmpty

当两个栈都为空时,队列才为空

bool myQueueEmpty(MyQueue* obj) 
{return STEmpty(&obj->pushst) && STEmpty(&obj->popst);
}

队列销毁函数myQueueFree

malloc是怎么开辟的,那队列就是怎么销毁的

结构图

void myQueueFree(MyQueue* obj) 
{STDestory(&obj->pushst);STDestory(&obj->popst);free(obj);
}

2.提交结果

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

相关文章:

  • 奥运会网站制作网上网页设计
  • 深圳网站建设lxhd上饶做网站的公司
  • 西城顺德网站建设大型网站建设需要多少钱
  • 百度关键词搜索排名查询有必要对网站进行seo吗
  • 肃宁县网站建设公司江苏百度推广代理商
  • 自学网站编程男人女人做那个网站
  • 广州英铭网站建设想给公司做个网站怎么做
  • 网上推广网站做球形全景的网站
  • 大同泰瑞集团建设有限公司网站小程序商城属于电商吗
  • 楚雄市网站建设公司wordpress 媒体库不显示图片
  • 网站后台上传wordwordpress评论选择头像
  • 建网站域名注册移动网站开发的视频下载
  • 织梦网站栏目不能更新网站建设个人信息英文翻译
  • 法国化妆品进口报关做网站景观设计网站推荐
  • 深圳优秀网站设计律师事务所网站建设方案
  • 网络营销怎么做网站网站不备案 能打开吗
  • 太阳宫网站建设汕头澄海玩具厂
  • 万象城网站建设邢台123贴吧
  • 西宁做网站制作的公司哪家好wordpress用户搜索次数插件
  • 怎么做自己的网站链接怎么把网站建设推广出去
  • 青海wap网站建设哪家好潍坊网站建设公司哪家好
  • 网站建设 项目文档网站建设苏州
  • 二手车网站源码下载左右翻网站模版
  • 廊坊网站专业制作合肥建站网站平台
  • 新手站长做游戏网站好吗青岛seo用户体验
  • 网站推广优化建设自学摄影教程的网站有哪些
  • 静海网站建设制作网络营销的好处和优势
  • 网站开发的目的意义特色创新wordpress 底部代码
  • 门户网站开发需求免费发布招聘信息
  • 有没有网站建设的教程价格查询网