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

网站建设公司的方案用J2ee怎么做视频网站

网站建设公司的方案,用J2ee怎么做视频网站,深圳 建设银行国际互联网站,竭诚网络网站建设开发队列的接口实现#xff08;附图解和源码#xff09; 文章目录队列的接口实现#xff08;附图解和源码#xff09;前言一、定义结构体二、接口实现#xff08;附图解源码#xff09;1.初始化队列2.销毁队列3.队尾入队列4.判断队列是否为空5.队头出队列6.获取队列头部元素7…队列的接口实现附图解和源码 文章目录队列的接口实现附图解和源码前言一、定义结构体二、接口实现附图解源码1.初始化队列2.销毁队列3.队尾入队列4.判断队列是否为空5.队头出队列6.获取队列头部元素7.获取队列尾部元素8.获取队列中有效元素个数三、源代码展示1.test.c测试主函数2.Queue.h接口函数的声明3.Queue.c接口函数的实现总结前言 本文主要介绍对列中增删查改等接口实现结尾附总源码 一、定义结构体 在这里我们用链表的结构实现队列效率比数组高 这里和单链表不同的是需要定义两个结构体一个表示链式结构队列另一个是队列的结构。 代码如下示例 typedef int QDataType; typedef struct QueueNode {struct QueueNode* next;QDataType data; }QNode; typedef struct Queue {QNode* head;QNode* tail;int size; }Queue;二、接口实现附图解源码 这里一共8个接口我会一 一 实现源码图解 1.初始化队列 初始化队列和单链表初始化时一致详细的可以参考单链表初始化 代码如下示例 void QueueInit(Queue* pq) {assert(pq);pq-head pq-tail NULL;pq-size 0; }2.销毁队列 最后不要忘了把pq-head和pq-tail置为NULL 代码如下示例 void QueueDestroy(Queue* pq) {assert(pq);QNode* cur pq-head;while (cur){QNode* del cur;cur cur-next;free(del);}pq-head pq-tail NULL; }3.队尾入队列 先用 malloc 开辟一个 newnode 空间 代码如下示例 void QueuePush(Queue* pq, QDataType x) {assert(pq);QNode* newnode (QNode*)malloc(sizeof(QNode));if (newnode NULL){perror(malloc fail);exit(-1);}else{newnode-data x;newnode-next NULL;}if (pq-tail NULL){pq-head pq-tail newnode;}else{pq-tail-next newnode;pq-tail newnode;}pq-size; }既然要不断判断链表是否为空我们应该写一个 判断队列是否为空的函数。 4.判断队列是否为空 如果为空返回非零结果如果非空返回0 代码如下示例 bool QueueEmpty(Queue* pq) {assert(pq);return pq-head NULL pq-tail NULL; }5.队头出队列 注意删除头对列时要注意队列可以为空所以用assert进行断言 这里也分两种情况1.队列只有一个结点2.队列有两个以上的结点。 6.获取队列头部元素 直接返回 pq-head-data 即可。 代码如下示例 QDataType QueueFront(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));return pq-head-data; }7.获取队列尾部元素 直接返回 pq-tail-data 即可。 代码如下示例 QDataType QueueBack(Queue* pq) {assert(pq);assert(!QueueEmpty(pq));return pq-tail-data; }8.获取队列中有效元素个数 直接返回 pq-size 即可 代码如下示例 int QueueSize(Queue* pq) {assert(pq);return pq-size; }如果我们没有在结构体中定义 size 应该怎么做? 代码如下示例 int QueueSize(Queue* pq) {assert(pq);QNode* cur pq-head;int n 0;while (cur){n;cur cur-next;}return n; }三、源代码展示 1.test.c测试主函数 代码如下示例 //#include stdio.h // //int f(int n) //{ // return n 1 ? 1 : f(n - 1) n; //} // //int main() //{ // printf(%d\n, f(10000)); // // return 0; //} #include stdio.h #include Stack.h #include Queue.h // 解耦 -- 低耦合 高内聚 // 数据结构建议不要直接访问结构数据一定要通过函数接口访问 void TestStack() {ST st;StackInit(st);StackPush(st, 1);StackPush(st, 2);StackPush(st, 3);printf(%d , StackTop(st));StackPop(st);printf(%d , StackTop(st));StackPop(st);StackPush(st, 4);StackPush(st, 5);while (!StackEmpty(st)){printf(%d , StackTop(st));StackPop(st);}printf(\n); } void TestQueue() {Queue q;QueueInit(q);QueuePush(q, 1);QueuePush(q, 2);QueuePush(q, 3);printf(%d , QueueFront(q));QueuePop(q);printf(%d , QueueFront(q));QueuePop(q);QueuePush(q, 4);QueuePush(q, 4);QueuePush(q, 4);while (!QueueEmpty(q)){printf(%d , QueueFront(q));QueuePop(q);}printf(\n);QueueDestroy(q); } int main() {//TestStack();TestQueue();return 0; }2.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 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);//队头入队列 QDataType QueueFront(Queue* pq);//获取队列头部元素 QDataType QueueBack(Queue* pq);//获取队列尾部元素 bool QueueEmpty(Queue* pq);//判断队列是否为空 int QueueSize(Queue* pq);//获取队列中有效元素个数3.Queue.c接口函数的实现 代码如下示例 #include Queue.h void QueueInit(Queue* pq) {assert(pq);pq-head pq-tail NULL;pq-size 0; } void QueueDestroy(Queue* pq) {assert(pq);QNode* cur pq-head;while (cur){QNode* del cur;cur cur-next;free(del);}pq-head pq-tail NULL; } void QueuePush(Queue* pq, QDataType x) {assert(pq);QNode* newnode (QNode*)malloc(sizeof(QNode));if (newnode NULL){perror(malloc fail);exit(-1);}else{newnode-data x;newnode-next NULL;}if (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(!QueueEmpty(pq));if (pq-head-next NULL){free(pq-head);pq-head pq-tail NULL;}else{QNode* del pq-head;pq-head pq-head-next;free(del);del NULL;}pq-size--; } 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; } bool QueueEmpty(Queue* pq) {assert(pq);return pq-head NULL pq-tail NULL; } int QueueSize(Queue* pq) {assert(pq);/*QNode* cur pq-head;int n 0;while (cur){n;cur cur-next;}return n;*/return pq-size; }总结 以上就是今天要讲的内容本文介绍了队列8种接口的模拟实现的图解源代码 如果我的博客对你有所帮助记得三连支持一下感谢大家的支持
http://www.dnsts.com.cn/news/39182.html

相关文章:

  • wordpress个人淘宝客网站优化排名
  • 山东省住房城乡和建设厅网站首页域名注册局是国家单位吗
  • 怎么用服务器搭建网站做司考题的网站
  • 免费数据网站jquery 单页网站
  • 网站建设相关书籍中国移动app官方下载
  • 网站代码语法苏州二建建筑集团有限公司
  • 简述网站设计规划的步骤php 公司网站
  • 教学平台seo案例模板
  • 2008系统做网站网站开发就业怎么样
  • 商丘高端网站建设简述网站开发岗位及职务
  • 团购手机网站怎么做电子商务网站开发需要注意问题
  • 网站转发代码如何制作导航网站
  • 360云主机可以建设网站吗网站工作室
  • 用php做网站流程服务质量好的外贸营销系统
  • 手机网站快速排名 软件电子商务网站建设与维护李建忠下载
  • 郑州酒店网站建设iis做网站跳转
  • 网站上怎么做返回主页链接能在线做国二计算机题目的网站
  • 做网站多久学会专业网页制作网站推广公司
  • 外贸网站为何搜不到川畅科技网站设计
  • 石家庄 网站开发做网站客户没有付定金
  • wordpress 发布网站建立网站预算
  • 公司网站制作要重庆涪陵网站建设公司
  • h5自适应网站模板下载wordpress数据库表管理
  • 湖北省网站备案最快几天哪个网站的旅游板块做的好
  • 营销型网站功能在技校计算机网站建设
  • 网站系统jsp模板中国建设人才网证书查询网址多少
  • 电子商务网站开发需要注意问题高端品牌是什么意思
  • 网站策划流程wordpress 国产插件
  • 骏域网站建设专家电脑版百度入口提交
  • 北京市建设官方网站个人网页设计实训报告