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

网站只做免费seo优化工具

网站只做,免费seo优化工具,经营范围网站开发运营,重庆网站建设推广公司目录 队列的概念 画图理解队列 代码图理解 代码展示(注意这个队列是单链表的结构实现) Queue.h(队列结构) Queue.c(函数/API实现) main.c(测试文件) 队列的概念 队列(Queue)是一种基础的数据结构,它遵循先进先出(First In …

目录

队列的概念

画图理解队列

代码图理解

代码展示(注意这个队列是单链表的结构实现)

Queue.h(队列结构)

Queue.c(函数/API实现)

main.c(测试文件)


队列的概念

队列(Queue)是一种基础的数据结构,它遵循先进先出(First In First Out, FIFO)的原则。这意味着最早进入队列的元素也将是最先离开队列的元素。队列常被比喻为现实生活中的排队场景,比如在超市收银台前排队结账,先到的人先结账。

队列有两个主要的操作:

  1. 入队(Enqueue):将一个元素添加到队列的末尾。这相当于一个人加入到队伍的最后面。
  2. 出队(Dequeue):从队列的前端移除一个元素,并返回该元素。这相当于队伍最前面的人完成相应操作后离开队伍。

画图理解队列

        这就是队列的一个基本结构,队尾入队,队头出队。在生活中也有这样的结构,请个看例图(希望可以给你带来印象):

生活中队列的例子非常普遍,以下是一些典型的实例:

  1. 超市结账:顾客在超市收银台前排队等待付款,先到的顾客先完成结账离开,后来的顾客依次跟进。

  2. 银行服务窗口:客户在银行的服务窗口前排队办理业务,遵循先来先服务的原则。

  3. 公共交通:在公交站、火车站或地铁站的候车队伍,乘客按照到达的先后顺序上车。

  4. 餐厅排队:在餐厅,特别是快餐店,顾客排队等待点餐和取餐,先排队的顾客先完成点餐流程。

  5. 打印机任务队列:在办公室,多个人提交打印任务时,打印机会按照任务提交的顺序依次执行打印。

  6. 医院挂号:病人在医院挂号处排队等待挂号,通常也是按照到达顺序进行服务。

  7. 网上购票系统:虽然看不见实体队伍,但在高峰时段购买热门活动或交通工具票务时,请求会被按接收顺序处理。

  8. ATM机取款:人们在ATM机前排队取现金,每个人完成交易后下一个人才能使用。

代码图理解

代码展示(注意这个队列是单链表的结构实现)

数据结构:单链表-CSDN博客文章浏览阅读1.6k次,点赞36次,收藏15次。链表是一种基本的数据结构,它用于存储一系列元素(节点),每个节点不仅包含数据元素,还包含一个指向下一个节点的指针。在链表中,数据并非连续地存储在内存中,而是通过每个节点的指针链接起来形成一个逻辑上的线性序列通过前面我们学习的顺序表我们现在延伸一个链表我们会发现顺序表的一些缺点。https://blog.csdn.net/2302_78381559/article/details/137829309

Queue.h(队列结构)

#pragma once
/*--头文件--*/
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>typedef int DataType;
//创建队列结构
typedef struct QueueNode
{struct QueueNode* Next;DataType val;
}QueueNode;
//创建一个结构体来确定头/尾,可以避免使用二级指针,也可以用哨兵来避免使用二级指针
typedef struct Queue {QueueNode* head;//头QueueNode* tail;//尾int size;//计数
}Queue;/*--函数实现--*/
//初始化
void Q_Init(Queue* p);
//入队
void Q_Push(Queue* p, DataType x);
//出队
void Q_Pop(Queue* p);
//节点数
int Q_Size(Queue* p);
//获取头部
DataType Q_Front(Queue* p);
//获取尾部
DataType Q_Back(Queue* p);
//判断是否为空
bool Q_Empty(Queue* p);
//销毁
void Q_Destroy(Queue* p);

Queue.c(函数/API实现)

#define _CRT_SECURE_NO_WARNINGS 1
//函数实现
#include"Queue.h"//初始化
void Q_Init(Queue* p) {//断言assert(p);//初始化结构体p->head = NULL;p->tail = NULL;p->size = 0;
}//入队
void Q_Push(Queue* p, DataType x) {//开辟一个节点QueueNode* newnode = (QueueNode*)malloc(sizeof(QueueNode));if (newnode == NULL)//判断是否开辟成功{assert("malloc");return;}//进行插入操作newnode->Next = NULL;newnode->val = x;if (p->tail == NULL){p->head = p->tail = newnode;}else{p->tail->Next = newnode;p->tail = newnode;//更新tail的指向}p->size++;//push一下节点个数++
}//出队
void Q_Pop(Queue* p) {assert(p);assert(p->size);//节点不能为空//进行出队if (p->head->Next == NULL)//一个节点{free(p->head);p->head = p->tail = NULL;}else//多个节点{QueueNode* tmp = p->head->Next;//用临时变量存储head的下一个节点free(p->head);//释放head的节点p->head = tmp;//在更新head指向}p->size--;//pop一个节点个数--
}//节点数
int Q_Size(Queue* p) {assert(p);assert(p->size);return p->size;
}//获取头部
DataType Q_Front(Queue* p) {assert(p);assert(p->size);//直接返回head的元素return p->head->val;
}
//获取尾部
DataType Q_Back(Queue* p) {assert(p);assert(p->size);//直接返回tail的元素return p->tail->val;
}//判断是否为空
bool Q_Empty(Queue* p) {assert(p);//return p->size == 0;return !p->size;
}
//销毁
void Q_Destroy(Queue* p) {assert(p);QueueNode* cur = p->head;while (cur){//存储下一个位置QueueNode* tmp = cur->Next;free(cur);cur = tmp;}//指针制空p->head = p->tail = NULL;p->size = 0;
}

main.c(测试文件)

#define _CRT_SECURE_NO_WARNINGS 1
//测试
#include"Queue.h"
#if 0
int main1() {Queue s1;Q_Init(&s1);Q_Push(&s1, 1);Q_Push(&s1, 2);Q_Push(&s1, 3);Q_Push(&s1, 4);while (!Q_Empty(&s1)){printf("%d ", Q_Front(&s1));Q_Pop(&s1);}Q_Destroy(&s1);
}
#endif // 0int main() {//测试一个数据Queue s1;Q_Init(&s1);Q_Push(&s1, 1);Q_Push(&s1, 2);Q_Push(&s1, 3);while (!Q_Empty(&s1)){printf("%d ", Q_Front(&s1));Q_Pop(&s1);}Q_Destroy(&s1);
}

 

http://www.mmbaike.com/news/92392.html

相关文章:

  • 做网站水印seo多久可以学会
  • 哪种语言做网站博客网站注册
  • 制作ppt用什么软件好上海优化公司有哪些
  • 做枪网站网络营销服务企业
  • 广州专业网站建设价格新闻头条今日新闻60条
  • 沈阳大型网站制作公司长春网络推广优化
  • 加盟广告北京seo公司排名
  • 西昌网站制作互联网营销的五个手段
  • 一站式做网站哪家专业网络推广方法怎么做
  • 做示意图的网站百度推广话术全流程
  • 西安115个高风险区降为低风险石家庄百度推广优化排名
  • 海口做网站多少钱郑州seo网站管理
  • 公司建立网站的好处软文营销的三个层面
  • 阿里巴巴网站开发是谁免费网站安全软件下载
  • 网站开发计什么科目网站首页排名
  • ai怎么做自己的网站网站建设合同模板
  • 怎么做免费的网站360优化大师官方最新
  • 网络营销的渠道是什么seo和sem
  • 南京医院网站建设宁德市人社局官网
  • wordpress 5发布优化方案官网电子版
  • 简单的个人主页网站制作html凡科建站的免费使用
  • 佛山seo整站优化最新舆情信息网
  • 如何制作自己的作品集网站想在百度做推广怎么做
  • 做网站怎样找精准营销的三要素
  • 西安直播网站开发今天实时热搜榜排名
  • 在线房屋设计网站广州推广排名
  • 中国建设银行网站新站seo优化快速上排名
  • 权重高的b2b网站58同城推广
  • 沈阳有资质做网站的公司网络营销的网站建设
  • 嘉兴专业的嘉兴专业网站建设项目汉川seo推广