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

flsah在网站开发中的作用网站服务器哪里的好

flsah在网站开发中的作用,网站服务器哪里的好,阜南县建设局网站,asp网站首页一、队列的概念及结构 队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表。队列具有先进先出FIFO(Fist In First Out)。 入队列:进行插入操作的一端称为队尾。 出队列:进行删除操作的一端称为…

一、队列的概念及结构

队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表。队列具有先进先出FIFO(Fist In First Out)。

入队列:进行插入操作的一端称为队尾

出队列:进行删除操作的一端称为队头

二、队列的实现(单链表实现)

Queue.h文件:

#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
typedef int QDataType;
//链式结构:表示队列
typedef struct QueueNode
{struct QueueNode* next;QDataType val;
}QNode;
//队列的结构
//多个参数可以封装成结构体,方便传参,否则下面传二级指针
typedef struct Queue
{QNode* front;QNode* rear;int size;
}Queue;
//初始化
void QueueInit(Queue* pq);
//销毁
void QueueDestroy(Queue* pq);
//队尾插入
void QueuePush(Queue* pq, QDataType x);
//队头删除
void QueuePop(Queue* pq);
//获取队头数据
QDataType QueueFront(Queue* pq);
//获取队尾数据
QDataType QueueBack(Queue* pq);
//获取队列中有效元素个数
void QueueSize(Queue* pq);
//判空
bool QueueEmpty(Queue* pq);

Queue.c文件:

#define _CRT_SECURE_NO_WARNINGS 1
#include"Queue.h"
//初始化
void QueueInit(Queue* pq)
{assert(pq);pq->front = NULL;pq->rear = NULL;pq->size = 0;
}
//销毁
void QueueDestroy(Queue* pq)
{assert(pq);QNode* cur = pq->front;while (cur){Queue* next = cur->next;free(cur);cur = next;}pq->front = pq->rear = NULL;pq->size = 0;
}
//入队列
void QueuePush(Queue* pq, QDataType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));if (newnode == NULL){perror("malloc fail!");return;}newnode->next = NULL;newnode->val = x;if (pq->rear == NULL){pq->front = pq->rear = newnode;}else{pq->rear->next = newnode;pq->rear = newnode;}pq->size++;
}
//队头删除
void QueuePop(Queue* pq)
{assert(pq);assert(pq->size > 0);if (pq->front == pq->rear){free(pq->front);pq->front = pq->rear = NULL;}else{QNode* next = pq->front->next;free(pq->front);pq->front = next;}pq->size--;
}
//获取队头数据
QDataType QueueFront(Queue* pq)
{assert(pq);assert(pq->front);return pq->front->val;
}
//获取队尾数据
QDataType QueueBack(Queue* pq)
{assert(pq);assert(pq->rear);return pq->rear->val;
}
//获取队列中有效元素个数
void QueueSize(Queue* pq)
{assert(pq);return pq->size;
}
//判空
bool QueueEmpty(Queue* pq)
{assert(pq);if (pq->size == 0){return 1;}else{return 0;}
}

Test文件:

#define _CRT_SECURE_NO_WARNINGS 1
#include"Queue.h"
int main()
{Queue q;QueueInit(&q);QueuePush(&q, 1);QueuePush(&q, 2);QueuePop(&q);QueuePush(&q, 3);QueuePush(&q, 4);while (!QueueEmpty(&q)){printf("%d ", QueueFront(&q));QueuePop(&q);}printf("\n");return 0;
}

三、设计循环队列

622. 设计循环队列 - 力扣(LeetCode)

方法:额外多开一个空间

代码:

typedef struct {int* a;int head;int tail;int k;
} MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));//多开一个解决假溢出问题obj->a = (int*)malloc(sizeof(int)*(k+1));obj->head = 0;obj->tail = 0;obj-> k = k;return obj;
}bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return obj->head == obj->tail;;
}bool myCircularQueueIsFull(MyCircularQueue* obj) {return (obj->tail + 1) % (obj->k+1) == obj->head;
}bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj))return false;obj->a[obj->tail] = value;obj->tail++;obj->tail %= (obj->k+1);return true;
}bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return false;++obj->head;obj->head %= (obj->k+1);return true;
}int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj->a[obj->head];
}int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj->a[(obj->tail + obj->k) % (obj->k+1)]; 
}void myCircularQueueFree(MyCircularQueue* obj) {free(obj->a);free(obj);
}/*** Your MyCircularQueue struct will be instantiated and called as such:* MyCircularQueue* obj = myCircularQueueCreate(k);* bool param_1 = myCircularQueueEnQueue(obj, value);* bool param_2 = myCircularQueueDeQueue(obj);* int param_3 = myCircularQueueFront(obj);* int param_4 = myCircularQueueRear(obj);* bool param_5 = myCircularQueueIsEmpty(obj);* bool param_6 = myCircularQueueIsFull(obj);* myCircularQueueFree(obj);
*/
http://www.yayakq.cn/news/938899/

相关文章:

  • 制作简易网站模板wordpress首页添加友情链接
  • 网站选项卡图标做网站域名的公司
  • 网站建设的开发方式google服务框架
  • seo网站培训班比较好的软件开发公司
  • 有哪些可以做问卷的网站深圳建站网站模板
  • 郑州网站优化公司上海集团网站建设公司好
  • 深圳网站建设交易医药网站建设
  • 做淘宝差不多的网站吗做公司网站按年收费
  • 网站建设的基本流程图专业做家居的网站有哪些
  • oppo自带软件商店下载wordpress多城市seo
  • 企业网站手机端外贸建网站哪家好
  • 南雄网站建设wordpress更换服务器
  • 常熟网站建设都找聚尚网络关键词排名优化系统
  • 网站开发 技术投标合肥房产网安居客
  • 鲅鱼圈网站开发哪家好哦怎么知道网站是谁做的
  • 贵州省建设项目验收备案网站邢台网公众号
  • 教育培训网站案例长春网络公司营销模式
  • 做阿里国际网站会有成效吗吉安建设公司网站
  • 低价网站建设费用多少有声直播网站建设
  • 电子商城官方网站flash 网站设计
  • 建设企业网站作用开不锈钢公司怎么做网站
  • 企业网站建设的流程店面装修设计图片
  • 怎么做单页网站wordpress文章图片slide
  • 内蒙古住房与城乡建设厅网站网址如何用vps系统搭建企业网站以及邮箱系统
  • 撮合交易网站建设方案一个公司能备案多个网站吗
  • wordpress设置网站首页杭州seo技术培训
  • 重庆网站建设eyouc手机网站制作优化
  • 电子商务网站是什么意思青海省建设工程造价网站
  • 网站建设设计报告前言wordpress 类似微博
  • 河北搜恒不给做网站济南网站建设seo优化