下载资源后端资源详情
queue.zip
大小:2.57KB
价格:25积分
下载量:0
评分:
5.0
上传者:Waiting_Love
更新日期:2024-07-26

c语言队列实现(不强制数据类型,包含三种实现)

资源文件列表(大概)

文件名
大小
QueueArrayDynamic.h
2.03KB
QueueArrayFix.h
1.92KB
QueueLink.h
2.1KB

资源内容介绍

c语言队列实现(不强制数据类型,包含三种实现)
#include<stdio.h>#include<stdlib.h>void helloQueueLink(){printf("%s\n","hello LinkedQueue!");}//队列节点typedef struct QueueNode{void* data;struct QueueNode *next;//后继元素struct QueueNode *front;//前驱元素}QueueNode;//队列对象(链式队列)typedef struct LinkedQueue{QueueNode *head;//队列头QueueNode *rear;//队列尾int size;//最大容量}LinkedQueue;//创建队列,队列长度固定且默认,由size决定LinkedQueue* createQueueLink(){LinkedQueue* queue = (LinkedQueue*) malloc(sizeof(LinkedQueue));queue->size = 0;queue->head = (QueueNode*)malloc(sizeof(QueueNode));queue->rear = queue->head;queue->rear->next = NULL;queue->rear->front = NULL;return queue;}//队列是否已空int linkedQueueIsEmpty(LinkedQueue *queue){if(queue->size == 0){return 1;}else{return 0;}}//链式队列不会满//入队列void linkedQueueEnQueue(void* val,LinkedQueue *queue){QueueNode *node = (QueueNode*)malloc(sizeof(QueueNode));node->data = val;node->front = queue->rear;//新元素的前驱为 队列的尾元素node->next = NULL;//新元素的后继为 NULLqueue->rear->next = node; //尾元素的后继为 新元素queue->rear = node;//移动队尾指针到新元素queue->size = queue->size+1;}//出队列void* linkedQueueDeQueue(LinkedQueue *queue){if(linkedQueueIsEmpty(queue) == 1){printf("出队列失败,队列已空!\n");return NULL;}else{QueueNode *node = queue->head;queue->head = queue->head->next;queue->size = queue->size - 1;void* val = queue->head->data;free(node);return val;}}//获取队首元素void* linkedQueueGetQueue(LinkedQueue *queue){if(linkedQueueIsEmpty(queue) == 1){printf("出队列失败,队列已空!\n");return NULL;}else{QueueNode *node = queue->head->next;void* val = node->data;return val;}}void linkedQueueDestroy(LinkedQueue *queue){QueueNode *node = queue->head;while(node != NULL){free(node);node = node->next;}free(queue);}

用户评论 (0)

发表评论

captcha

相关资源

基于CLIP模型的视频文本检索设计与实现

针对现有基于CLIP预训练模型方法存在的训练时间长、模型规模大等问题,本文在CLIP4Clip模型的基础上,采用关键帧保存方案和Adapter Tuning低参数量微调,提高了计算资源有限情况下的训练效率和模型性能。训练速度方面,本文首先采用帧保存方案,将视频库中的关键帧提取并保存为图片,从而加快数据加载速度,将训练速度提高了14.6倍;然后采用AIM模型的Adapter设计方案,在CLIP4Clip模型中插入可训练的Adapter层,只训练少量参数实现快速收敛,最终实现训练速度提高34倍。模型性能方面,论文证明了平均选取视频关键帧,比按照最大帧间差选取视频关键帧的效果更优;然后证明了AIM在视频检索领域的有效性;并可以使用AIM来提高模型性能,将模型在MSR-VTT数据集上的R@1从42.2%提升至43.4%,R@5从70.2%提升为71.1%。本文设计并实现了一个视频文本检索系统,为了保障系统的检索速度,搭建了向量数据库,并测试了不同数据保存方式的数据存取速度。系统使用Django搭建了Web端应用,实现了多种功能需求,展示了本文方法在视频文本检索系统中的应用效果和潜力。

5.01MB20积分

永磁同步电机的EKF观测器滤波控制

针对《现代永磁同步电机控制》一书中,扩展卡尔曼滤波算法仿真模型的搭建

56.59KB22积分

河南师范大学软件学院C语言题面_筛选后.zip

河南师范大学软件学院C语言题面_筛选后.zip

567.64KB41积分

Q-Learning在路径规划中的应用(MATLAB版)

针对于已知环境中的路径规划问题,本文提出Q-Learning解决智能体在复杂环境中找到最优路径。最终阶段包括查询 Q 表以选择最佳行动路径。训练完成后,呈现了历时、最小步数、最大奖励值等结果,以及 Q 表的可视化、最短路径和整个训练过程。Q-learning 是强化学习中的一种基于值函数的学习方法,用于解决无模型的马尔可夫决策过程(MDP)问题。在 Q-learning 中,代理尝试学习一个价值函数 Q(s, a),它估计在状态 s 采取动作 a 后所能获得的长期回报的价值。状态 s、动作a、奖励信号r、Q 值函数 (Q-table)、折扣因子 γ、学习率 α、探索-利用策略。图1 Q-Learning结构图状态s:在 Q-learning 中,代理与环境进行交互,环境处于不同的状态。状态是描述环境的特定情况或配置的抽象表示。

4.34KB30积分