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

网站如何做竞价网站查询站长工具

网站如何做竞价,网站查询站长工具,信宜做网站,网站建设被骗维护费用队列实现栈 点击链接答题 思路: 出栈:找不为空的队列,将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://www.wangmingla.cn/news/9964.html

相关文章:

  • 特乐网站建设网络舆情监测专业
  • 做公益网站的说明百度收录提交申请
  • 安徽省住房和建设厅网站一站式自媒体服务平台
  • 国内推广seo页面代码优化
  • 自己做的网站怎么设置关键词软文写手兼职
  • 凡科做的网站要收费吗网络优化公司
  • 成都网站营销seo多少费用黑龙江seo关键词优化工具
  • 站长工具seo综合查询黄百度推广电话是多少
  • 怎么使用织梦做下载网站湖南关键词排名推广
  • javaweb是用java做网站吗优化大师win10下载
  • 南阳做网站的公司网站seo的主要优化内容
  • 国外优惠卷网站怎么做seo排名优化培训价格
  • 一站式做网站哪家好seo网址大全
  • 学院网站建设项目范围变更申请表北京seoqq群
  • 在线制作diy电子印章网站搜索引擎优化案例
  • php网站开发设计论文关键词分为哪几类
  • 深圳市 网站建设450怎样才能上百度
  • dw 做网站图片之间的链接抖音seo优化系统招商
  • 做seo网站地图重要吗百度小说风云榜总榜
  • 徐州有办网站的地方吗百度普通版下载
  • 做设计任务的网站网络营销是以什么为中心
  • 西安旅游攻略自由行路线推荐电商seo引流
  • 网站建设需要哪些知识百度网站推广一年多少钱
  • 营销号煽动民族情绪快手seo关键词优化
  • 专注徐州网站开发windows优化大师可以卸载吗
  • 做境外盈利网站违法吗浙江seo技术培训
  • 如何做好一个外贸进网站的编辑网站关键词优化排名推荐
  • 湖南响应式网站建设价位国际外贸网络交易平台
  • 公司网站放哪些内容友情链接交换形式
  • 青浦企业网站制作建立自己的网站