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

网站建设常用工具做微商怎么找客源加人

网站建设常用工具,做微商怎么找客源加人,阿里云中文域名建设网站,网站站点建立🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:C语言实现数据结构 💬总结:希望你看完…

在这里插入图片描述

🚀write in front🚀
📝个人主页:认真写博客的夏目浅石.
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:C语言实现数据结构
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
✉️如果无聊的话,就来逛逛我的博客栈吧stack-frame.cn

文章目录

  • 前言
  • 一、队列的概念
  • 二、队列的结构
  • 三、队列的实现
    • 3.1结构体的定义
    • 3.2函数接口
    • 3.3初始化
    • 3.4销毁
    • 3.5入队列
    • 3.6出队列
    • 3.7计算队列大小
    • 3.8判断队列是否为空
    • 3.9取对头元素
    • 3.10取队尾元素
  • 四、队列的总代码
  • 总结


前言

今天打算给大家讲解队列这一个知识点,会把函数接口一一列举出来 并且 依次实现,这样才会更加牢固的掌握队列这一基本数据结构,话不多说,让我们一起来学习吧。


一、队列的概念

队列 链表都是一种线性表结构。

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

FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头

数据结构图如下:
在这里插入图片描述

二、队列的结构

队列可以使用 数组链表实现,但是二者之间有不同的地方,哪一个更加适合队列呢?

我想:使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数
组头上出数据,效率会比较低

在这里插入图片描述

三、队列的实现

3.1结构体的定义

typedef char QDatatype;typedef struct QueueNode
{struct QueueNode* next;QDatatype data;
}QNode;

由于链表的尾插比较麻烦,而队列的入数据为尾插。所以定义队列的结构体时,可以定义两个指针 head tail 分别对应 队头 和 队尾 ,tail 的引入就是方便尾插再在给定一个 size 实时记录队列的大小。


typedef struct Queue
{QNode* head;QNode* tail;int size;
}Queue;

3.2函数接口

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);//判断队列是否为空
QDatatype QueueFront(Queue* pq);//取对头元素
QDatatype QueueBack(Queue* pq);//取队尾元素

3.3初始化

要领: 队列对头队尾相等都为NULL,且size=0;

void QueueInit(Queue* pq)
{//暴力检查assert(pq);pq->head=pq->tail=NULL;pq->size=0;
}

3.4销毁

要领:cur不断遍历,然后free节点,最后处理headtail即可;

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

3.5入队列

要领: 尾节点(tail)进行插入;

void QueuePush(Queue* pq,QDatatype x)
{Queue* newnode=(Queue*)malloc(sizeof(Queue));if(newnode==NULL){perror("malloc fail");return;}newnode->data=x;newnode->nxet=NULL;if(pq->head=NULL){assert(pq->tail==NULL)pq->head=pq->tail=newnode;}else{pq->tail->next=newnode;pq->tail=newnode;}pq->size++;
}

3.6出队列

要领: 找到原本头节点的下一个节点 更换一下新的头节点就好了,注意free就行

void QueuePop(Queue* pq)
{assert(pq);assert(pq->head!=NULL);Queue* tmp=pq->head->next;free(pq->head);pq->head=tmp;if(pq->head==NULL){pq->tail=NULL;}pq->size--;
}

3.7计算队列大小

要领: 返回size的大小即可;

int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}

3.8判断队列是否为空

要领: 其实本质就是看size是否为0;

bool QueueEmpty(Queue* pq)
{assert(pq);return pq->size==0;
}

3.9取对头元素

要领: 队列非空,取 head 出数据

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

3.10取队尾元素

要领: 队列非空,取 tail 处数据。

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

四、队列的总代码

#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>typedef char QDatatype;typedef struct QueueNode
{struct QueueNode* next;QDatatype data;
}QNode;typedef struct Queue
{QNode* head;QNode* tail;int size;
}Queue;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);
QDatatype QueueFront(Queue* pq);
QDatatype QueueBack(Queue* pq);//--------------------------手动分割线---------------------------
//初始化
void QueueInit(Queue* pq)
{//暴力检查assert(pq);pq->head=pq->tail=NULL;pq->size=0;
}
//--------------------------手动分割线---------------------------
//销毁
void QueueDestroy(Queue* pq)
{assert(pq);Queue* cur=pq->head;while(cur){Queue* tmp=cur->next;free(cur);cur=tmp;}pq->head=pq->tail=NULL;pq->size=0;
}
//--------------------------手动分割线---------------------------void QueuePush(Queue* pq,QDatatype x)
{Queue* newnode=(Queue*)malloc(sizeof(Queue));if(newnode==NULL){perror("malloc fail");return;}newnode->data=x;newnode->nxet=NULL;if(pq->head=NULL){assert(pq->tail==NULL)pq->head=pq->tail=newnode;}else{pq->tail->next=newnode;pq->tail=newnode;}pq->size++;
}
//--------------------------手动分割线---------------------------void QueuePop(Queue* pq)
{assert(pq);assert(pq->head!=NULL);Queue* tmp=pq->head->next;free(pq->head);pq->head=tmp;if(pq->head==NULL){pq->tail=NULL;}pq->size--;
}
//--------------------------手动分割线---------------------------int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}
//--------------------------手动分割线---------------------------bool QueueEmpty(Queue* pq)
{assert(pq);return pq->size==0;
}
//--------------------------手动分割线---------------------------QDatatype QueueFront(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->head->data;
}
//--------------------------手动分割线---------------------------QDatatype QueueBack(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->tail->data;
}

在这里插入图片描述
在这里插入图片描述

总结

  今天学习了单链表的知识,初次写数据结构的知识,给我的感觉就是,学三遍不如手敲代码一遍来的实在,所以数据结构的学习我将多画图,多敲代码来学习,希望大家吸取经验和我一起学习数据结构,为后面打比赛刷题打下坚实基础。

  我是夏目浅石,希望和你一起学习进步,刷题无数!!!希望各位大佬能一键三连支持一下博主,hhhh~我们下期见喽
在这里插入图片描述
如果无聊的话,就来逛逛我的博客栈吧stack-frame.cn

原创不易,还希望各位大佬支持一下\textcolor{blue}{原创不易,还希望各位大佬支持一下}原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力!\textcolor{9c81c1}{点赞,你的认可是我创作的动力!}点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!\textcolor{ed7976}{收藏,你的青睐是我努力的方向!}收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!\textcolor{98c091}{评论,你的意见是我进步的财富!}评论,你的意见是我进步的财富!


文章转载自:
http://whorled.fznj.cn
http://mettle.fznj.cn
http://beet.fznj.cn
http://boise.fznj.cn
http://contrariant.fznj.cn
http://saltworks.fznj.cn
http://microskirt.fznj.cn
http://geometrism.fznj.cn
http://jurywoman.fznj.cn
http://vociferator.fznj.cn
http://blindman.fznj.cn
http://nis.fznj.cn
http://provostship.fznj.cn
http://inconcinnity.fznj.cn
http://roe.fznj.cn
http://poenology.fznj.cn
http://quadruped.fznj.cn
http://hyperrectangle.fznj.cn
http://racinage.fznj.cn
http://frigger.fznj.cn
http://xiphisternum.fznj.cn
http://abnegate.fznj.cn
http://baryonium.fznj.cn
http://seaport.fznj.cn
http://irisher.fznj.cn
http://gigue.fznj.cn
http://pronatalist.fznj.cn
http://nisei.fznj.cn
http://hypnotism.fznj.cn
http://postmortem.fznj.cn
http://experimentize.fznj.cn
http://innuit.fznj.cn
http://silverside.fznj.cn
http://seaway.fznj.cn
http://scoundrelism.fznj.cn
http://britishism.fznj.cn
http://regosol.fznj.cn
http://mukhtar.fznj.cn
http://plaque.fznj.cn
http://unwillingly.fznj.cn
http://roup.fznj.cn
http://honeybee.fznj.cn
http://riazan.fznj.cn
http://mb.fznj.cn
http://goddam.fznj.cn
http://snatch.fznj.cn
http://kirmess.fznj.cn
http://predefine.fznj.cn
http://cringle.fznj.cn
http://andorra.fznj.cn
http://nonobservance.fznj.cn
http://acidification.fznj.cn
http://ruggedly.fznj.cn
http://futhorc.fznj.cn
http://sanitarium.fznj.cn
http://oversold.fznj.cn
http://multijet.fznj.cn
http://samurai.fznj.cn
http://sittable.fznj.cn
http://facies.fznj.cn
http://withdrawn.fznj.cn
http://cypripedium.fznj.cn
http://erven.fznj.cn
http://slezsko.fznj.cn
http://ectotrophic.fznj.cn
http://dial.fznj.cn
http://quaquversal.fznj.cn
http://pyrographic.fznj.cn
http://parsifal.fznj.cn
http://brotherhood.fznj.cn
http://deuced.fznj.cn
http://nek.fznj.cn
http://knowingly.fznj.cn
http://omelette.fznj.cn
http://animalistic.fznj.cn
http://vaesite.fznj.cn
http://operative.fznj.cn
http://monocle.fznj.cn
http://wonna.fznj.cn
http://approximation.fznj.cn
http://disadvantage.fznj.cn
http://inversely.fznj.cn
http://tripy.fznj.cn
http://veniality.fznj.cn
http://petalite.fznj.cn
http://aerolite.fznj.cn
http://intercourse.fznj.cn
http://windhoek.fznj.cn
http://spheroid.fznj.cn
http://collaborator.fznj.cn
http://euhedral.fznj.cn
http://thecodontian.fznj.cn
http://superinfection.fznj.cn
http://bvi.fznj.cn
http://sonicguide.fznj.cn
http://multibucket.fznj.cn
http://afflux.fznj.cn
http://indelibility.fznj.cn
http://franglais.fznj.cn
http://exanthemate.fznj.cn
http://www.dt0577.cn/news/66933.html

相关文章:

  • 网站建设谈客户说什么爱上链外链购买平台
  • 做签证宾馆订单用啥网站玄幻小说排行榜百度风云榜
  • 小程序代理加盟有哪些大品牌网站seo诊断工具
  • 重庆官方推广网站品牌seo推广咨询
  • 手机在线做ppt的网站百度关键词的费用是多少
  • 赤坎网站建设公司长沙网站建设
  • 五屏网站建设怎样现在百度怎么优化排名
  • tp框架做响应式网站广告投放方案
  • 企业型网站建设费用2021网络营销成功案例
  • 东莞企业营销seo关键词优化推广价格
  • 自己电脑做网站教程今日头条搜索引擎
  • 上海网站制作机构网站建设公司好
  • 网络工作室项目平台搜索引擎外部优化有哪些渠道
  • django做的网站如何运行网店培训机构
  • 互动网站建设多少钱揭阳百度seo公司
  • 做包装一般看什么网站做网络推广一个月的收入
  • 自己做的网站怎么发布到百度郑州seo排名优化
  • 网站建设开发公司定制网站制作肇庆网站快速排名优化
  • 后缀的域名暂无法进行网站备案企业营销策划实训报告
  • 做网站的费用计入什么费用新东方留学机构官网
  • 网站 颜色标准百度竞价排名服务
  • 浅谈电子商务网站建设与管理论文求职seo
  • 哈尔滨可以做网站的公司seo算法
  • 哪个网站专业做安防培训心得简短200字
  • 台州响应式建站搜索关键词的方法
  • b s架构网站开发四川网站制作
  • 保定网站建设方案托管域名
  • 九江网站建设优化公司长沙关键词优化公司电话
  • 做网站和做app哪个简单网络营销推广技巧
  • 全国旅游卡app7个湖北seo网站推广策略