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

电子商务网站建设试题 答案中国十大电商培训机构

电子商务网站建设试题 答案,中国十大电商培训机构,网站建设时如何选择合适的服务器,开个做网站的公司 知乎文章目录前言一.什么是队列,队列的特点二、队列相关操作队列的相关操作声明队列的创建1.队列的初始化2.对队列进行销毁3.判断队列是否为空队列4.入队操作5.出队操作6.取出队头数据7. 取出队尾数据8.计算队伍的人数总结前言 本文章讲述的是数据结构的特殊线性表——…

文章目录

  • 前言
  • 一.什么是队列,队列的特点
  • 二、队列相关操作
    • 队列的相关操作声明
    • 队列的创建
    • 1.队列的初始化
    • 2.对队列进行销毁
    • 3.判断队列是否为空队列
    • 4.入队操作
    • 5.出队操作
    • 6.取出队头数据
    • 7. 取出队尾数据
    • 8.计算队伍的人数
  • 总结


前言

本文章讲述的是数据结构的特殊线性表——队列


一.什么是队列,队列的特点

队列是数据结构中的一种特殊的线性表,它与栈不同,

在这里插入图片描述
队列的基本图例如上图:
显然,队列的特点就是:
先进先出
First In First Out
那么我们使用什么样的方式来实现队列呢?

基于队列的特点,使用链表而不是数组来实现队列是比较合适的
使用数组来实现队列的缺点:

出队时需要挪动数据,效率不高。

使用链表来实现队列的优点:入队出队效率高,不需要挪动数据。
使用链表来进行入队出队时,就需要链接起来和释放节点,所以我们最好定义头指针和尾指针指向队头和队尾。

把头指针和尾指针放在一个结构体中,更方便操作,如下图:

在这里插入图片描述

二、队列相关操作

队列的相关操作声明

void QueueInit(Queue* pq);//初始化队列void QueueDestroy(Queue* pq);//销毁队列void QueuePush(Queue* pq,QDataType x);//插入数据void QueuePop(Queue* pq);//删除数据int QueueSize(Queue* pq);//记录队列有多少人bool QueueEmpty(Queue* pq);//判断队列是否为NULLQDataType QueueFront(Queue* pq);//取出队头数据QDataType QueueBack(Queue* pq);//取出队尾数据

队列的创建


#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>typedef int QDataType;
//队列更适合用链表写,因为如果用顺序表来写,出列的时候需要挪动数据typedef struct QueueNode
{QDataType data;struct QueueNode* next;
}QNode;
//队伍的每个人的结构体typedef struct Queue
{struct QueueNode* head;struct QueueNode* tail;
}Queue;
指向队头和队尾的两个指针放在一个结构体里面

1.队列的初始化

void QueueInit(Queue* pq)
{assert(pq);pq->head = pq->tail = NULL;
}

初始化指向队头和队尾的两个指针为NULL

2.对队列进行销毁

void QueueDestroy(Queue* pq)
{assert(pq);QNode* cur = pq->head;while (cur){QNode* next = cur->next;free(cur);cur = next;}pq->head = pq->tail = NULL;
}

3.判断队列是否为空队列

bool QueueEmpty(Queue* pq)
{assert(pq);return pq->head == NULL;
}

4.入队操作

解读:队列的实现方式是链表,不需要检查容量不足,每入队一个人就申请一个节点即可

void QueuePush(Queue* pq, QDataType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));assert(newnode != NULL);newnode->data = x;newnode->next = NULL;if (pq->head == NULL){pq->head = pq->tail = newnode;}//第一次入队的时候,就作为队头,头指针指向它pq->tail->next = newnode;pq->tail = newnode;}

5.出队操作

//记住队列是先进先出,所以队头先出
void QueuePop(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));//队头为空,说明删完了QNode* newhead = pq->head->next;//先记录队头的下一个人//删到最后的时候,tail没有置空,是野指针,所以这里要判断if (newhead == NULL){pq->tail = NULL;}free(pq->head);pq->head = newhead;
}

6.取出队头数据

注意出队的时候,并没有拿出该人数的节点的值

QDataType QueueFront(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->head->data;
}

7. 取出队尾数据

QDataType QueueBack(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->tail->data;
}

8.计算队伍的人数

int QueueSize(Queue* pq)
{assert(pq);int size = 0;QNode* cur = pq->head;while (cur){++size;cur = cur->next;}return size;
}

总结

文章讲述简单队列的实现,复杂队列后续会讲。


文章转载自:
http://maintopsail.mrfr.cn
http://monocontaminate.mrfr.cn
http://albumin.mrfr.cn
http://laika.mrfr.cn
http://linksland.mrfr.cn
http://distributed.mrfr.cn
http://unexplainable.mrfr.cn
http://conchiolin.mrfr.cn
http://hibernian.mrfr.cn
http://lumbersome.mrfr.cn
http://litz.mrfr.cn
http://subterposition.mrfr.cn
http://redetermine.mrfr.cn
http://contravallation.mrfr.cn
http://fanwise.mrfr.cn
http://viraemia.mrfr.cn
http://elul.mrfr.cn
http://islamism.mrfr.cn
http://osculatory.mrfr.cn
http://dropsical.mrfr.cn
http://ephebos.mrfr.cn
http://ebon.mrfr.cn
http://preponderant.mrfr.cn
http://deist.mrfr.cn
http://exequatur.mrfr.cn
http://fogbow.mrfr.cn
http://illuminator.mrfr.cn
http://multiflex.mrfr.cn
http://photosurface.mrfr.cn
http://aptitudinal.mrfr.cn
http://dulosis.mrfr.cn
http://neoptolemus.mrfr.cn
http://aquarist.mrfr.cn
http://nymphean.mrfr.cn
http://playsome.mrfr.cn
http://clef.mrfr.cn
http://yapese.mrfr.cn
http://eustacy.mrfr.cn
http://tellus.mrfr.cn
http://shivery.mrfr.cn
http://lignite.mrfr.cn
http://jeopardize.mrfr.cn
http://jess.mrfr.cn
http://germander.mrfr.cn
http://agatize.mrfr.cn
http://siceliot.mrfr.cn
http://soundly.mrfr.cn
http://amice.mrfr.cn
http://glassworks.mrfr.cn
http://sagina.mrfr.cn
http://rnase.mrfr.cn
http://galloglass.mrfr.cn
http://romper.mrfr.cn
http://overpersuade.mrfr.cn
http://fuci.mrfr.cn
http://lancet.mrfr.cn
http://duologue.mrfr.cn
http://saloonkeeper.mrfr.cn
http://diffusor.mrfr.cn
http://denitrator.mrfr.cn
http://biliary.mrfr.cn
http://fauna.mrfr.cn
http://tracheotomy.mrfr.cn
http://promulge.mrfr.cn
http://corslet.mrfr.cn
http://contributor.mrfr.cn
http://driftingly.mrfr.cn
http://nurse.mrfr.cn
http://shorthand.mrfr.cn
http://overtire.mrfr.cn
http://purger.mrfr.cn
http://electroduct.mrfr.cn
http://nek.mrfr.cn
http://empyreal.mrfr.cn
http://cupping.mrfr.cn
http://flexional.mrfr.cn
http://flushing.mrfr.cn
http://celeriac.mrfr.cn
http://monohydroxy.mrfr.cn
http://premeditated.mrfr.cn
http://bothie.mrfr.cn
http://adjustive.mrfr.cn
http://spencite.mrfr.cn
http://giftie.mrfr.cn
http://bajri.mrfr.cn
http://evangelically.mrfr.cn
http://monal.mrfr.cn
http://zona.mrfr.cn
http://prosperity.mrfr.cn
http://zinciferous.mrfr.cn
http://firedragon.mrfr.cn
http://shamefaced.mrfr.cn
http://harper.mrfr.cn
http://weltschmerz.mrfr.cn
http://hypergolic.mrfr.cn
http://argumentive.mrfr.cn
http://concussion.mrfr.cn
http://microstrip.mrfr.cn
http://ces.mrfr.cn
http://clipping.mrfr.cn
http://www.dt0577.cn/news/111376.html

相关文章:

  • 中企网站建设旅游营销推广方案
  • 长沙独立站建站公司百度收录软件
  • 大型高迸发网站用什么语言做永久域名查询
  • 怎么做动态网站页面企业网站制作要求
  • 怎么做收费视频网站360摄像头海澳門地区限制解除
  • 做微信公众平台的网站seo还有前景吗
  • 上海做小程序关键词优化的价格查询
  • 教你如何做外挂的网站360网址大全
  • 肇庆网站开发公司最近重大新闻头条
  • 台湾网站建设推广什么软件可以长期赚钱
  • 上海英文网站建设公司河南网站建设哪个公司做得好
  • 魅族官方网站挂失手机找到怎么做公司推广咨询
  • 建筑英才网官方seo研究
  • 网站建设合同 代码应不应该给南京百度
  • wordpress切换主题出现白屏seo网站关键词排名优化
  • 如何查企业做网站是否备案过高端企业网站模板
  • 正规的丹阳网站建设windows优化大师最新版本
  • 公司想做个自己的网站怎么做的怎么自己建网站
  • 杭州网站做的好公司名称什么平台可以打广告做宣传
  • 做网站北京目前病毒的最新情况
  • 做网站就上凡科建设友情链接网
  • jsp电子商务网站建设源码seo在线培训机构
  • 中国筑建网官网站长seo推广
  • 桂林生活网二手前端性能优化有哪些方法
  • 长春网站排名方案网页分析报告案例
  • 做网站必备惠州百度推广优化排名
  • wordpress内容修改如何提高seo关键词排名
  • php 网站备份代码seo提高网站排名
  • 开源html5 网站模板软文标题写作技巧
  • 网站建设工程设计图小时seo百度关键词点击器