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

丹阳做公司网站北京网站优化合作

丹阳做公司网站,北京网站优化合作,工地建筑劳务公司招工平台,专门做投标书的网站目录 🍺0.前言 1.什么是队列 2. 队列的实现 2.1定义队列节点 2.2定义队列 2.3队尾入队列 2.4判断队列是否为空 2.5队头出队列 2.6 队列首元素 2.7队尾元素 2.8队列内的元素个数 2.9销毁队列 3.试运行 💎4.结束语 🍺0.前言 言C之…

目录

🍺0.前言

1.什么是队列

2. 队列的实现

2.1定义队列节点

2.2定义队列

2.3队尾入队列

2.4判断队列是否为空

2.5队头出队列

2.6 队列首元素

2.7队尾元素

2.8队列内的元素个数

2.9销毁队列

3.试运行

💎4.结束语


🍺0.前言

        言C之言,聊C之识,以C会友,共向远方。各位博友的各位你们好啊,这里是持续分享数据结构知识的小赵同学,今天要分享的数据结构知识是队列,在这一章,小赵将会向大家展开聊聊队列。✊

1.什么是队列

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

队列图片

其实上面说了很多,但其实队列很简单,正如它的名字一样,队列就是排队。

总结一下规律就是先进先出,就跟我们排队一样,谁排第一,谁的请求就可以先被执行。 

 

2. 队列的实现

那么队列该怎么实现呢,其实也就前面两个方式,一个数组,一个链表,这里小赵并不推荐用数组,因为如果我们用数组的话,一直出头元素,会让我们很难确定这个时候我们的对头在哪里。所以这里小赵更推荐使用链表,因为链表可以使用我们的next的指针去找到下一个头。

 

2.1定义队列节点

typedef int	QDataType;
//创建一个节点
typedef struct QNode
{QDataType data;struct QNode* next;
}QNode;
//队列
typedef struct Queue
{QNode* front;//队头QNode* rear;//队尾int capacity;//队列中的元素
}Queue;

2.2定义队列

//定义队列
void Queueinit(Queue*Qhead)
{Qhead->front=NULL;Qhead->rear = Qhead->front;Qhead->capacity = 0;
}

2.3队尾入队列

//队尾入队列
void  QueuePush(Queue* q, QDataType data)
{QNode*newnode= (QNode*)malloc(sizeof(QNode));//创建一个新节点newnode->next = NULL;newnode->data = data;if (q->front == NULL)//如果队列里面没有元素{q->front = newnode;q->front->next = NULL;q->rear = q->front;//队尾和队首在一个位置}else{q->rear->next = newnode;q->rear = newnode;//移动duiwei}q->capacity++;//数量+1
}

2.4判断队列是否为空

int QueueEmpty(Queue* q)
{return q->capacity == 0;//如果为空返回非零,不为空返回零
}

2.5队头出队列

void QueuePop(Queue* q)
{if (QueueEmpty(q))  return;//如果为空就返回QNode* node = q->front;//保留头节点if (q->front->next == NULL)//如果只有一个数{q->front = NULL;q->rear = NULL;}else{q->front = q->front->next;//移动队首}free(node);//释放原队首node = NULL;q->capacity--;
}

2.6 队列首元素

QDataType QueueFront(Queue* q)
{if (QueueEmpty(q))  return;//如果为空就返回return q->front->data;
}

2.7队尾元素

QDataType QueueBack(Queue* q)
{if (QueueEmpty(q))return;return q->rear->data;
}

2.8队列内的元素个数

int QueueSize(Queue* q)
{return q->capacity;
}

2.9销毁队列

void QueueDestroy(Queue* q)
{while (q->front)//遍历队列{QNode* node = q->front;q->front = q->front->next;free(node);node = NULL;}q->rear = NULL;free(q);//要出去后手动制空
}

3.试运行

💎4.结束语

好了小赵今天的分享就到这里了,如果大家有什么不明白的地方可以在小赵的下方留言哦,同时如果小赵的博客中有什么地方不对也希望得到大家的指点,谢谢各位家人们的支持。你们的支持是小赵创作的动力,加油。

如果觉得文章对你有帮助的话,还请点赞,关注,收藏支持小赵,如有不足还请指点,小赵及时改正,感谢大家支持!!!

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

相关文章:

  • 网站规划开发前景wordpress 自动邮件
  • .me做社区网站哈尔滨网站建设报价
  • 苏州网站建设数据网络装饰公司怎么做微网站
  • 国内做任务得数字货币的网站深圳网站设计 建设元
  • 婚纱网站布局ppt怎么做怎么上传wordpress
  • 网站开发项目启动成本软件设计文档
  • 视频网站是用什么框架做的wordpress 副标题 seo
  • 铜川泰士公馆建设网站网盘搜索神器
  • 惠州网站建设 鑫北京网站建设制作案例
  • c 做网站如何调用dllwordpress 电影模版
  • 如何盗用网站模板哪个网站做处理货
  • 企业社交网站定制博物馆展陈公司排名
  • 网站建设的成本分析网站开发会用到定时器功能
  • 天眼查网站建设公司福州营销型网站建设价格
  • 南海佛山网站建设网页app生成器原理
  • 网站以什么名字备案昆明网站托管企业
  • 网站设计怎么验收海建网站
  • 网站推广和网站优化网站建设 账务处理
  • net网站开发实例公司网站建设哪家正规
  • 网站 dns 解析网络营销的主要传播渠道是
  • 贵阳银行手机银行下载官方网站流量精灵app
  • 网站建设与网页设计论述题seo职位具体做什么
  • 空间站对接网站建设的成本分析
  • 公司网站开发国内外现状wordpress编码修改
  • 广州的企业网站建设品牌logo设计说明
  • 网站建设数据安全分析深圳市罗湖网站建设
  • 想做外贸做哪些网站好上上上海网站设计
  • 北京企业建网站公司湖北自适应网站建设报价
  • 旅游政务网站建设方案app与网站的区别
  • 零食铺网站建设策划书八种营销模式