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

博彩网站自己做如何接广告赚钱

博彩网站自己做,如何接广告赚钱,深圳龙华区龙塘社区,做设计太依赖网站素材队列的的概念 队列是一种特殊的线性表,特殊之处在于它只允许在表的头部进行删除操作,而在表的尾部进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中…

队列的的概念

队列是一种特殊的线性表,特殊之处在于它只允许在表的头部进行删除操作,而在表的尾部进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

队列的特点

  1. 先进先出:这是队列最大的特点,队列中所有的元素都遵循先进先出的原则进行管理数据,最先入队列的一定会最先出队列。
  2. 受限访问:队列操作数据时,只能对队头或者队尾进行操作。入队(插入数据)只会在队尾进行,出队(删除数据)只会在对头进行。
  3. 高效:进行删除和插入数据,最坏情况下的时间复杂度是O(1)。

队列的接口实现

队列可以使用数组和链表来实现,但是链表实现起来更清晰。

队列的结构

typedef int QUEDATATYPE;typedef struct QueueNode
{QUEDATATYPE data;struct QueueNode* next;
}QUENODE;

但是这样有个问题,我每次插入都要找尾节点,这样就太慢了,所以我们就用两个指针来解决这个问题,一个指针指向队列的头节点,一个用来指向队列的尾节点。

typedef int QUEDATATYPE;typedef struct QueueNode
{QUEDATATYPE data;struct QueueNode* next;
}QUENODE;typedef struct Queue
{QUENODE* phead;QUENODE* ptail;int size;
}Queue;

队列的初始化

//初始化队列
void QueueInit(Queue* pq)
{assert(pq);pq->phead = pq->ptail = NULL;pq->size = 0;
}

入队

入队操作在尾部进行

这里有有两个情况,队列为空与非空。

  • 为空的话,就直接将新节点赋给pheadptail
  • 非空,将ptailnext指针指向新节点,再更新ptail
//入队
void QueuePush(Queue* pq, QUEDATATYPE x)
{assert(pq);if (pq->phead == NULL){QUENODE* Node = (QUENODE*)malloc(sizeof(QUENODE));if (Node == NULL){perror("malloc fail");exit(1);}Node->data = x;Node->next = NULL;pq->phead = pq->ptail = Node;}else{QUENODE* Node = (QUENODE*)malloc(sizeof(QUENODE));if (Node == NULL){perror("malloc fail");exit(1);}Node->data = x;Node->next = NULL;pq->ptail->next = Node;pq->ptail = Node;}pq->size++;
}

出队

出队操作在队头进行

出队同样也有两种情况,只剩下一个节点和多个节点。

  • 只有一个节点:也就是只有头节点了,直接将头节点释放掉就好了。
  • 多个节点:将头节点释放,更新头节点
//出队
void QueuePop(Queue* pq)
{assert(pq && pq->size > 0);if (pq->phead->next == NULL){free(pq->phead);pq->phead = pq->ptail = NULL;}else{QUENODE* tmp = pq->phead;pq->phead = pq->phead->next;free(tmp);tmp = NULL;}pq->size--;
}

获取队头元素

// 获取队头元素 
QUEDATATYPE QueueHead(Queue* pq)
{assert(pq);return pq->phead->data;
}

判空

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

获取栈中有效元素个数

// 获取栈中有效元素个数 
int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}

销毁队列

//销毁队列
void QueueDestroy(Queue* pq)
{QUENODE* tmp = pq->phead;while (tmp){pq->phead = pq->phead->next;free(tmp);tmp = pq->phead;}pq->phead = pq->ptail = NULL;pq->size = 0;
}

完整代码

Queue.h

#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>typedef int QUEDATATYPE;typedef struct QueueNode
{QUEDATATYPE data;struct QueueNode* next;
}QUENODE;typedef struct Queue
{QUENODE* phead;QUENODE* ptail;int size;
}Queue;//初始化队列
void QueueInit(Queue* pq);
//入队
void QueuePush(Queue* pq, QUEDATATYPE x);
//出队
void QueuePop(Queue* pq);
// 获取队头元素 
QUEDATATYPE QueueHead(Queue* pq);
//判空
bool QueueEmpty(Queue* pq);
// 获取栈中有效元素个数 
int QueueSize(Queue* pq);
//销毁队列
void QueueDestroy(Queue* pq);

Queue.c

#include"Queue.h"//初始化队列
void QueueInit(Queue* pq)
{assert(pq);pq->phead = pq->ptail = NULL;pq->size = 0;
}//入队
void QueuePush(Queue* pq, QUEDATATYPE x)
{assert(pq);if (pq->phead == NULL){QUENODE* Node = (QUENODE*)malloc(sizeof(QUENODE));if (Node == NULL){perror("malloc fail");exit(1);}Node->data = x;Node->next = NULL;pq->phead = pq->ptail = Node;}else{QUENODE* Node = (QUENODE*)malloc(sizeof(QUENODE));if (Node == NULL){perror("malloc fail");exit(1);}Node->data = x;Node->next = NULL;pq->ptail->next = Node;pq->ptail = Node;}pq->size++;
}//出队
void QueuePop(Queue* pq)
{assert(pq && pq->size > 0);if (pq->phead->next == NULL){free(pq->phead);pq->phead = pq->ptail = NULL;}else{QUENODE* tmp = pq->phead;pq->phead = pq->phead->next;free(tmp);tmp = NULL;}pq->size--;
}// 获取队头元素 
QUEDATATYPE QueueHead(Queue* pq)
{assert(pq);return pq->phead->data;
}//判空
bool QueueEmpty(Queue* pq)
{assert(pq);return pq->size == 0;
}// 获取栈中有效元素个数 
int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}//销毁队列
void QueueDestroy(Queue* pq)
{QUENODE* tmp = pq->phead;while (tmp){pq->phead = pq->phead->next;free(tmp);tmp = pq->phead;}pq->phead = pq->ptail = NULL;pq->size = 0;
}

结语

最后感谢您能阅读完此片文章,如果有任何建议或纠正欢迎在评论区留言,也可以前往我的主页看更多好文哦(点击此处跳转到主页)。
如果您认为这篇文章对您有所收获,点一个小小的赞就是我创作的巨大动力,谢谢!!!

http://www.hengruixuexiao.com/news/24961.html

相关文章:

  • 怎样让网站被百度收录网站搜索引擎优化
  • 模板网站建设哪家好seo网站推广什么意思
  • 网站301怎么做百度信息流是什么
  • 福州网站建设H5seo优化培训班
  • 贵阳网站建设培训学校如何注册网站怎么注册
  • 网站的基础知识高端网站建设哪家便宜
  • 黄金网站下载免费世界企业排名500强
  • 免费顶级域名注册网站aso优化贴吧
  • 河南微网站开发aso关键词优化工具
  • 在建设部网站上的举报近三天时政热点
  • 品牌网站建设策如何创建一个属于自己的网站
  • 四川网站开发哪家好武汉网站推广公司
  • 专业的网站制作中国十大广告公司排行榜
  • 鹤山做网站公司网络营销的方式包括
  • 汕头网站优化全国最新疫情实时状况地图
  • 做网站用windows还是mac百度经验怎么赚钱
  • 建设环境工程技术中心网站网络舆情的网站
  • dreawever如何做本地网站怎么找精准客户资源
  • 手机做兼职的网站设计东莞关键词排名提升
  • 政府网站建设工作方案短链接
  • 网站的三大标签谷歌搜索引擎免费入口 台湾
  • 一个做网站的公司年收入长沙营销网站建设
  • 找专业公司做网站营销软文模板
  • 做婚纱摄影网站网络推广和信息流优化一样么
  • 建站快车复制测试账号网站内容培训计划方案模板
  • 产品结构设计网站哈尔滨百度公司地址
  • 工信部网站备案查通知百度关键词竞价排名
  • 国有企业查询系统官网做灰色词seo靠谱
  • 如何访问win7下做的网站手机一键优化
  • 做h5动画网站重庆seo代理