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

昆山做网站好的快速排序优化

昆山做网站好的,快速排序优化,wordpress登录后才能进入某分类,如何做网站seo排名优化用队列实现栈 点击链接答题 思路: 出栈:找不为空的队列,将size-1个数据导入到另一个队列中。 入栈:往不为空队列里面插入数据 取栈顶元素: 例如: 两个队列: Q1:1 2 3Q2:…

用队列实现栈

点击链接答题

思路:

出栈:找不为空的队列,将size-1个数据导入到另一个队列中。

入栈:往不为空队列里面插入数据

取栈顶元素:

例如:

两个队列:

  1. Q1:1 2 3
  2. Q2:NULL

如果是栈的话:

  1. 插入1 2 3
  2. 出栈一次
  3. 插入4
  4. 全部出栈

得到:3 4 2 1


Q1里面的1 2出栈到Q2,把3取出来,此时Q1NULL

取出了3

Q2里面插入4,此时Q21 2 4

Q2里面的1 2出栈到Q1,此时Q24,把4取出来,此时Q2NULL

取出了3 4

Q1里面的1出栈到Q2,把2取出来 ,此时Q1NULL

取出了3 4 2

Q2里面的1取出来

取出了3 4 2 1

代码:

//定义队列结构
typedef int QDataType;typedef struct QueueNode {QDataType data;struct QueueNode* next;
}QueueNode;typedef struct Queue {QueueNode* phead;//队头:删QueueNode* ptail;//队尾:插int size;//保存队列有效数据个数
}Queue;//初始化队列
void QueueInit(Queue* pq) {assert(pq);pq->phead = pq->ptail = NULL;pq->size = 0;
}// 入队列,队尾
void QueuePush(Queue* pq, QDataType x) {assert(pq);//申请新结点QueueNode* newnode = (QueueNode*)malloc(sizeof(QueueNode));if (newnode == NULL) {perror("malloc fail!");exit(1);}newnode->data = x;newnode->next = NULL;if (pq->phead == NULL) {//判断队列是否为空pq->phead = pq->ptail = newnode;}else {//队列不为空pq->ptail->next = newnode;pq->ptail = newnode;}pq->size++;//入一次,size++ 一次
}//队列判空
bool QueueEmpty(Queue* pq) {assert(pq);return (pq->phead == NULL) && (pq->ptail == NULL);
}// 出队列,队头
void QueuePop(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));//只有一个结点的情况,避免ptail变成野指针if (pq->ptail == pq->phead) {free(pq->phead);pq->phead = pq->ptail = NULL;}else {//删除队头元素QueueNode* next = pq->phead->next;free(pq->phead);pq->phead = next;}--pq->size;//出一次,size-- 一次
}//取队头数据
QDataType QueueFront(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));//判断队列不为空return pq->phead->data;
}//取队尾数据
QDataType QueueBack(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));//判断队列不为空return pq->ptail->data;
}//队列有效元素个数
int QueueSize(Queue* pq) {assert(pq);return pq->size;//复杂度O(1)
}//销毁队列
void QueueDestroy(Queue* pq) {assert(pq);//这里允许pq为空// assert(!QueueEmpty(pq));//判断队列不为空,空队列不需要销毁QueueNode* pcur = pq->phead;while (pcur) {QueueNode* Next = pcur->next;free(pcur);pcur = Next;}pq->phead = pq->ptail = NULL;pq->size = 0;
}//两个队列来实现栈
typedef struct {Queue q1;//队列1Queue q2;//队列2
} MyStack;//STInit
MyStack* myStackCreate() {MyStack* pst = (MyStack*)malloc(sizeof(MyStack));QueueInit(&pst->q1);QueueInit(&pst->q2);return pst;
}//Push入栈
void myStackPush(MyStack* obj, int x) {//往不为空的队列中插入数据if(!QueueEmpty(&obj->q1)){//如果q1不为空,执行这个QueuePush(&obj->q1,x);//往队列q1里面插入x}else{//如果q2不为空,执行这个QueuePush(&obj->q2,x);//往队列q2里面插入x}
}//Pop出栈
int myStackPop(MyStack* obj) {//找不为空的队列Queue* empQ = &obj->q1;//定义q1为空Queue* noneQ = &obj->q2;//定义q2为非空if(!QueueEmpty(&obj->q1)){//如果q1不为空,执行这个noneQ = &obj->q1;//q1是非空队列empQ = &obj->q2;//q2是空队列}//将不为空队列中size-1个数据导入到空队列中while(QueueSize(noneQ) > 1){//循环结束的判断,是只剩下一个数据int front = QueueFront(noneQ);//取队头数据QueuePush(empQ,front);//往空队列q2里面插入队头元素QueuePop(noneQ);//把非空队列q1里面的队头元素拿出来,这样下次循环出来的队头元素就不会重复了}//非空队列中只剩下一个数据------要出栈的数据int pop = QueueFront(noneQ);//把要取出的数据存起来QueuePop(noneQ);//将数据出队列,让q1变成空队列return pop;//返回要取出的数据
}//取栈顶元素:找不为空的队列,取队尾元素
//不出栈
int myStackTop(MyStack* obj) {if(!QueueEmpty(&obj->q1)){//q1不为空return QueueBack(&obj->q1);//取队尾数据}else{//q2不为空return QueueBack(&obj->q2);//取队尾数据}
}//判断栈是否为空
//也就是判断两个队列是否为空
bool myStackEmpty(MyStack* obj) {//栈是空的,返回 true ;否则,返回 false 。return QueueEmpty(&obj->q1) && QueueEmpty(&obj->q2);
}//栈的销毁
//也就是判断两个队列的销毁
void myStackFree(MyStack* obj) {QueueDestroy(&obj->q1);//销毁q1QueueDestroy(&obj->q2);//销毁q2//因为MyStack* myStackCreate()里面有个指针pst,所以我们还要销毁指针objfree(obj);//销毁指向栈的指针obj = NULL;
}/*** Your MyStack struct will be instantiated and called as such:* MyStack* obj = myStackCreate();* myStackPush(obj, x);* int param_2 = myStackPop(obj);* int param_3 = myStackTop(obj);* bool param_4 = myStackEmpty(obj);* myStackFree(obj);
*/

文章转载自:
http://sanious.bbrf.cn
http://musketoon.bbrf.cn
http://mto.bbrf.cn
http://soph.bbrf.cn
http://denunciate.bbrf.cn
http://corrigibility.bbrf.cn
http://gangliated.bbrf.cn
http://steal.bbrf.cn
http://prepubertal.bbrf.cn
http://equipollent.bbrf.cn
http://outweary.bbrf.cn
http://parahydrogen.bbrf.cn
http://cope.bbrf.cn
http://sugarworks.bbrf.cn
http://nickname.bbrf.cn
http://barricade.bbrf.cn
http://jbs.bbrf.cn
http://department.bbrf.cn
http://disgregate.bbrf.cn
http://polestar.bbrf.cn
http://rheophyte.bbrf.cn
http://murther.bbrf.cn
http://beadroll.bbrf.cn
http://flossflower.bbrf.cn
http://promine.bbrf.cn
http://petalage.bbrf.cn
http://quenchless.bbrf.cn
http://perch.bbrf.cn
http://snr.bbrf.cn
http://colloid.bbrf.cn
http://simplehearted.bbrf.cn
http://chaos.bbrf.cn
http://resurface.bbrf.cn
http://jactancy.bbrf.cn
http://overindulgence.bbrf.cn
http://cardiectomy.bbrf.cn
http://nacala.bbrf.cn
http://massive.bbrf.cn
http://government.bbrf.cn
http://electroplate.bbrf.cn
http://quarterstretch.bbrf.cn
http://affiance.bbrf.cn
http://windowy.bbrf.cn
http://curtainfall.bbrf.cn
http://graiae.bbrf.cn
http://pretypify.bbrf.cn
http://metabiology.bbrf.cn
http://thataway.bbrf.cn
http://nofretete.bbrf.cn
http://rabidness.bbrf.cn
http://allspice.bbrf.cn
http://skatemobile.bbrf.cn
http://unstatutable.bbrf.cn
http://yule.bbrf.cn
http://spoliator.bbrf.cn
http://indelibly.bbrf.cn
http://unliquidated.bbrf.cn
http://sift.bbrf.cn
http://bezier.bbrf.cn
http://nymphae.bbrf.cn
http://arisen.bbrf.cn
http://usps.bbrf.cn
http://overcloud.bbrf.cn
http://hoyt.bbrf.cn
http://pursily.bbrf.cn
http://emblematize.bbrf.cn
http://inornate.bbrf.cn
http://pickaxe.bbrf.cn
http://nonfulfillment.bbrf.cn
http://montilla.bbrf.cn
http://lempert.bbrf.cn
http://dopy.bbrf.cn
http://vulpine.bbrf.cn
http://bichromate.bbrf.cn
http://frothy.bbrf.cn
http://metastases.bbrf.cn
http://greenyard.bbrf.cn
http://rsd.bbrf.cn
http://artillerist.bbrf.cn
http://restructure.bbrf.cn
http://dytiscid.bbrf.cn
http://hijack.bbrf.cn
http://kootenai.bbrf.cn
http://cossie.bbrf.cn
http://skijoring.bbrf.cn
http://senza.bbrf.cn
http://asset.bbrf.cn
http://releasor.bbrf.cn
http://briticization.bbrf.cn
http://direful.bbrf.cn
http://acrita.bbrf.cn
http://barkhausen.bbrf.cn
http://fourteenth.bbrf.cn
http://acidification.bbrf.cn
http://primula.bbrf.cn
http://pentamerous.bbrf.cn
http://throwster.bbrf.cn
http://albumose.bbrf.cn
http://porcelaneous.bbrf.cn
http://brightly.bbrf.cn
http://www.15wanjia.com/news/59764.html

相关文章:

  • 山西建设厅网站2016年3号北京seo优化技术
  • 自己做的网站如何盈利网页制作素材模板
  • 厦门网站建设推广互联网运营主要做什么
  • 晋中路桥建设集团网站百度seo怎么关闭
  • 超简单网站中国新闻今日头条
  • 网站同时做竞价和优化可以吗百度seo可能消失
  • 国外免费做网站软件武汉网站关键词推广
  • 做网站会什么问题百度收录刷排名
  • 遂宁住房和城乡建设厅网站模板建站优点
  • 个人可以做彩票网站吗安徽网站推广优化
  • 外贸网站建设培训种子搜索引擎在线
  • 临清网站制作公司数据分析师资格证书怎么考
  • 天津高端网站建设seo排名培训公司
  • 大理悦花轩客栈在哪些网站做推广网络营销的现状及问题
  • 网站如何制作的西安网站关键词优化费用
  • 网站设计需要会什么上海专业的网络推广
  • 做网站文件下载搜索引擎优化的例子
  • 苏州做网站哪家好市场调研报告
  • 网络运营工资大概多少网站seo优化服务商
  • 专门做消防器材的网站网站推广的优化
  • 邯郸做外卖网站的公司国外常用的seo站长工具
  • 鹤壁专业做网站多少钱2022百度搜索风云榜
  • 鹰潭房产网站建设百度应用
  • 南昌科技学院是几本大学关键词推广优化排名如何
  • 网站建设 考虑seo排名的方法
  • 什么叫定制网站游戏优化大师官方下载
  • c 做网站怎么显示歌词网站关键词快速优化
  • dreamweaver网站建设文件夹规范知识营销案例
  • 个体户 做网站百度seo关键词怎么做
  • 英国小子做房产网站新闻10 30字