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

wordpress网站建小程序郑州建设局官网

wordpress网站建小程序,郑州建设局官网,wordpress修改固定链接后无法访问,西安网站建设 玖佰网络需求:无 本篇文章将解决一下几个问题: 队列是什么?如何实现一个队列?什么场景下会用队列? 队列的概念: 队列:一种只允许一端进行插入数据操作,在另一端进行删除操作的特殊线性表。…

需求:无

本篇文章将解决一下几个问题:

  1. 队列是什么?
  2. 如何实现一个队列?
  3. 什么场景下会用队列?

 队列的概念:

  • 队列:一种只允许一端进行插入数据操作,在另一端进行删除操作的特殊线性表。队列具有先进先出(FIFO)入队列:进行插入操作的一端称为队尾,出队列的一端叫做队头。

 队列的实现:

  •  队列也可以使用链表或者数组来实现。但是一般都是用链表来实现,如果用数组的话,出队列的时候,会移动数据,效率很低(O(N))。
  • 用链表实现,出队列时要记录好头节点的下一个节点。

  • 队列的判空:当元素个数为0,就是一个空队列,这时不允许出队列。

  • 队列元素的个数:当入队列的时候,size就+1,出队列时就-1,当我们需要元素个数的时候就不需要遍历,用O(1)的时间复杂度就可以完成队列的元素个数。

 队列的应用场景:

  •  其实在我们的生活中,到处都是队列的身影,像排队买票的时候,医院叫号的时候....
  • 还有就是想大麦app上抢演唱会的票等等,都有队列的身影。

队列的源码:

void QueueInit(Queue* pq)
{assert(pq);pq->tail = pq->head = NULL;pq->size = 0;
}void QueueDestroy(Queue* pq)
{assert(pq);QueueNode* cur = pq->head;while (cur){QueueNode* next = cur->next;free(cur);cur = next;}
}void QueuePush(Queue* pq, QueueDateType x)
{assert(pq);QueueNode* newnode = (QueueNode*)malloc(sizeof(QueueNode));if (newnode == NULL){perror("malloc fail");exit(-1);}newnode->next = NULL;newnode->val = x;if (pq->head == NULL){pq->tail = pq->head = newnode;}else{pq->tail->next = newnode;pq->tail = newnode;}pq->size++;
}void QueuePop(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));if (pq->head->next == NULL){free(pq->head);pq->head = pq->tail = NULL;pq->size--;}else{QueueNode* next = pq->head->next;free(pq->head);pq->head = next;pq->size--;}
}QueueDateType QueueFront(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->head->val;
}QueueDateType QueueBack(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->tail->val;
}int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}bool QueueEmpty(Queue* pq)
{assert(pq);return pq->head == NULL;
}void QueuePrint(Queue* pq)
{assert(pq);while (pq->head){printf("%d ", pq->head->val);pq->head = pq->head->next;}printf("\n");
}

typedef int QueueDateType;
typedef struct QueueNode
{struct QueueNode* next;QueueDateType val;
}QueueNode;typedef struct Queue
{QueueNode* head;QueueNode* tail;int size;
}Queue;void QueueInit(Queue* pq);
void QueueDestroy(Queue* pq);
void QueuePush(Queue* pq,QueueDateType x);
void QueuePop(Queue* pq);
QueueDateType QueueFront(Queue* pq);
QueueDateType QueueBack(Queue* pq);
int QueueSize(Queue* pq);
bool QueueEmpty(Queue* pq);
void QueuePrint(Queue* pq);

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

相关文章:

  • js网站登录怎么做哪个外包公司比较好
  • 网站建设与管理实践报告总结一级域名免费申请
  • 网站建设视觉营销帐号售卖网站建设
  • cms做企业网站建站系统深圳最新消息
  • 站长之家0网页制作图片教程
  • 网站建设容易出现的问题设计公司加盟
  • 网站建站公司多少钱海外学校网站建设
  • 深圳的网站建设公司网页设计实训报告心得体会
  • 电商网站的建设与安全都哪些网站可以做gif
  • 大淘客网站建设app做羊水亲子鉴定网站
  • 厦门专业建站系统制作公司网站建设外贸
  • 外贸网站建设专业高端服装产品网站建设
  • 清远网站推广优化公司岳阳推广公司
  • 设计网站的意义网站建设有哪些优质公众号
  • 用flash制作网站海口网络建站模板
  • 宁夏网站制作哪家好中企动力济南分公司
  • 网站 用什么数据库网站显示结算
  • 打赏网站怎么建设牛商网站建设
  • 上海手机网站建设哪家专业郑州网站建设q.479185700棒
  • 旅游目的地网站建设的流程360免费建站视频
  • 做网站做网站的公司中国100强排名企业名单
  • 建设企业网站的原因免费建站的手机app
  • 网站百度突然不收录网络营销有哪些主要策略
  • 上海网站建设选缘魁-企查建设踏板车所有型号
  • 网站建设难吗vps网站建设
  • 聚美优品网站建设方案wordpress会务网站模版
  • 手表哪个网站正品wordpress渗透
  • 哪有学装修设计的学校沧州网站建设优化案例
  • 企业网站设计好的缺点有哪些苏州工业园区房价
  • 网站开发平台河北雄安建设投资集团网站