如何做视频网站推广员手机网游传奇

张小明 2026/1/10 7:44:07
如何做视频网站推广员,手机网游传奇,html源码网站下载之家,北京住房和城乡建设厅官网1. 队列的概念及结构队列#xff1a;只允许在一端进行插入数据操作#xff0c;在另一端进行删除数据操作的特殊线性表#xff0c;队列具有先进先出 FIFO(First In First Out)。入队列#xff1a;进行插入操作的一端称为队尾。出队列#xff1a;进行删除操作的一端称为队头…1. 队列的概念及结构队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表队列具有先进先出 FIFO(First In First Out)。入队列进行插入操作的一端称为队尾。出队列进行删除操作的一端称为队头。队列和栈是有所不同的比如入栈顺序是1 2 3 4但是出栈顺序可以有多种不一定是 1 2 3 4因为它可以边进边出所以是一个一对多的关系而队列的入队列顺序和出队列顺序是一样的是一个一对一的关系正是基于队列的这种性质它可以用于保持公平性例如做一个抽号机比如吃饭排队拿取号码先来的先拿后来的后拿。也可以利用队列来做一个好友推荐广度优先遍历假如要给小徐推荐好友那么就以小徐为起点首先让小徐进入队列然后让小徐出队列第一圈结束的同时让小徐的好友小明和小王入队列这也就意味着当小徐出队列时队列中剩下的都是小徐的朋友然后按照顺序让小明出队列出队列的同时让小明的朋友入队列然后让小王出队列第二圈结束出队列的同时让小王的朋友入队列这时小徐的朋友都出队列了剩下的都是小徐朋友的朋友也就是处于第三圈上的好友这个时候就可以将队列中的好友推荐给小徐不断循环这个步骤就可以一步一步扩大好友圈。2. 队列的功能实现队列也可以数组和链表的结构实现使用链表的结构实现更优一些因为如果使用数组的结构出队列在数组头上出数据效率会比较低。那么确定了使用链表就要考虑是使用双向链表还是单向链表因为双向链表肯定是可以实现队列功能的但是我们优先考虑能不能使用单链表来实现如果单链表能实现就不使用双向链表因为单向链表比双向链表更加节省空间。2.1 一级指针还是二级指针在数据结构的学习中已经讨论过很多次到底是用一级指针还是二级指针的问题我也混淆了很久最简单的记忆方法就是去看你到底要不要去通过形参ppehad改变实参plist若不不想改变实参那形参就直接用一级指针接收即可如果想要通过形参改变实参那么就使用二级指针接收因为只有对二级指针进行一次解引用才能读取到实参部分然后对*pphead的改变就相当于是对plist的改变。在队列的实现中因为队列的本质是单链表我在学习单链表的过程中是使用二级指针来完成相应的功能的在学习双向链表中是使用一级指针来完成相应的功能的这是因为在双向链表中引入了“头节点”也就是“哨兵位”因为指向哨兵位的指针plist是不需要被改变的所以用一级指针接收即可这一点我在双向链表的章节中也提到过所以对于这节中的队列为了避免二级指针的繁琐也直接使用一级指针来接收但是是使用一种新的方式来解决这个问题直接将指向链表头节点和尾节点的指针封装成一个结构体所以想要改变这两个指针就相当于改变这个结构体比如要改变实参int p那形参就传int*p也就是接收整型变量p的地址p要改变实参int* p那就传int** pp也就是接收指针p的地址所以现在要改变实参结构体变量stuct Name p那么形参就传struct Name* p(也就是接收结构体变量p的地址p)这就转化为了只需要传一级指针而不是二级指针。typedef int QDataType; // 链式结构表示队列 typedef struct QListNode { struct QListNode* next; QDataType val; }QNode; // 队列的结构 typedef struct Queue { QNode* phead; QNode* ptail; int size;//存入一个数据就计数一次方便后面计数函数的实现同时也降低了时间复杂度 }Queue; // 初始化队列 void QueueInit(Queue* pq); // 队尾入队列 void QueuePush(Queue* pq, QDataType x); // 队头出队列 void QueuePop(Queue* pq); // 获取队列头部元素 QDataType QueueFront(Queue* pq); // 获取队列队尾元素 QDataType QueueBack(Queue* pq); // 获取队列中有效元素个数 int QueueSize(Queue* pq); // 检测队列是否为空 bool QueueEmpty(Queue* pq); // 销毁队列 void QueueDestroy(Queue* pq);这种方法既避免了传多个参数又避免了传二级指针2.2 队列的初始化代码实现// 初始化队列 void QueueInit(Queue* pq) { assert(pq); pq-phead NULL; pq-ptail NULL; pq-size 0; }2.3 入队列的实现// 队尾入队列 void QueuePush(Queue* pq, QDataType x) { assert(pq); QNode* newnode (QNode*)malloc(sizeof(QNode));//开辟动态空间 if (newnode NULL) { perror(malloc fail); return; } //进行初始化 newnode-val x; newnode-next NULL; //进行插入 if (pq-ptail NULL) { pq-phead pq-ptail newnode; } else { pq-ptail-next newnode; pq-ptail newnode; } pq-size; }2.4 出队列的实现// 队头出队列 void QueuePop(Queue* pq) { assert(pq); assert(pq-size ! 0); //一个节点的情况 if (pq-phead -next NULL) { free(pq-phead);//free的是指针指向的节点而不是释放指针注意区别 pq-phead pq-ptail NULL; } //多个节点的情况 else { QNode* next pq-phead-next; free(pq-phead); pq-phead next; } pq-size--; }注意这里面的free函数释放的是指针所指向的节点的空间也就是malloc动态开辟的内存空间而不是指针pq-phead或者pq-ptail。2.5 队列其他功能的实现// 获取队列头部元素 QDataType QueueFront(Queue* pq) { assert(pq); assert(pq-phead);//头节点如果为NULL说明没有节点存入那读取就没有意义了 return pq-phead-val; } // 获取队列队尾元素 QDataType QueueBack(Queue* pq) { assert(pq); assert(pq-ptail);//尾节点如果为NULL说明没有节点存入那读取就没有意义了 return pq-ptail-val; } // 获取队列中有效元素个数 int QueueSize(Queue* pq) { assert(pq); return pq-size; } // 检测队列是否为空 bool QueueEmpty(Queue* pq) { asswet(pq); return pq-size 0; } // 销毁队列 void QueueDestroy(Queue* pq) { assert(pq); QNode* pcur pq-phead; while (pcur) { QNode* next pcur-next; free(pcur); pcur next; } pq-phead pq-ptail NULL; pq-size0; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

月嫂公司网站建设构思安康地seo

期末发成绩堪比渡劫,公开发怕伤娃自尊,家长追着问得挨个回,手机盯到发烫,改作业的时间都被占了… 直到被同组老师安利这个微信小程序,我直接原地封神!现在发成绩5分钟搞定,家长群清净又和谐✅ …

张小明 2026/1/8 11:59:51 网站建设

网站建设好了怎么弄手机网站建设网站开发实训指导书

凌晨的朋友圈里,有人晒出“五分钟搞定课程论文”的AI使用心得,评论区一片羡慕。但当这样的“高效”成为常态,一个幽灵正在校园徘徊——学术诚信体系正在经历前所未有的系统性冲击。这不仅仅是个人道德问题,更引发了一个迫在眉睫的…

张小明 2026/1/8 11:55:44 网站建设

河南公司网站制作咨询大同建设网站

YOLO模型训练需要多少Token?详细测算来了 在AI工程实践中,我们越来越习惯用“Token”来衡量计算成本——尤其是在大模型时代。但这个原本属于自然语言处理的单位,能否用于评估像YOLO这样的视觉模型训练开销?如果可以,一…

张小明 2026/1/8 11:53:43 网站建设

做网站图片用什么格式郑州平台网站建设

终极Web思维导图完全指南:从零基础到高效应用 【免费下载链接】mind-map 一个还算强大的Web思维导图。A relatively powerful web mind map. 项目地址: https://gitcode.com/GitHub_Trending/mi/mind-map 还在为复杂的思维导图软件而烦恼吗?想要一…

张小明 2026/1/8 11:51:41 网站建设

90后做受网站新的营销方式有哪些

Atomic原子类实现原理:CAS机制深度解析 一、CAS 核心思想:乐观锁的硬件实现 1. CAS 操作的本质 java 复制 下载 // CAS 伪代码:比较并交换 public class CASPrinciple {/*CAS(Compare And Swap) 操作:内存位置:V预…

张小明 2026/1/10 3:44:32 网站建设

园林公司网站建设费用国内最便宜机票网站建设

容器适配器的概念:容器适配器是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一些不同的功能。容器适配器的作用:它可以通过适配容器现有的接口来提供不同的功能。大致含义与电源适配器类似。即:通过封装某个序列式…

张小明 2026/1/9 16:54:44 网站建设