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

网站建设规划书的制作网络广告策划与创意

网站建设规划书的制作,网络广告策划与创意,广元市城乡规划建设监察大队网站,个人网站支付解决方案文章目录Queue.hmain.cQueue.c用队列实现一个图书信息管理#xff0c;这里放一下有哪些文件。#xff08;ps#xff1a;我之前写的是学生信息管理#xff0c;但是有人说我们的作业是写图书#xff0c;就该了下内容#xff0c;没有改文件名#xff09;队列是用链表实现的… 文章目录Queue.hmain.cQueue.c用队列实现一个图书信息管理这里放一下有哪些文件。ps我之前写的是学生信息管理但是有人说我们的作业是写图书就该了下内容没有改文件名队列是用链表实现的因为涉及到队列的一些特性选择链表比数组会更优。Queue.h #pragma once防止库函数的重复引用因为库函数会在预编译的时候在程序中展开会增大程序的体积。   通过typedef对数据重命名之后需要修改数据就十分方便。并且其他函数不需要太多的改动。   这里结构体传的是指针减少没必要的内存消耗。   队列的特性是先进先出所以和栈一样只有进出队列不存在头插尾插、头删尾删的问题。   这里的图书价格应该使用浮点数类型更合适只是我之前写的是学生信息管理不想改了就这样吧意思get就行。 #pragma once #include stdio.h #include assert.h #include stdlib.htypedef struct {char name[20];char author[20];int bno;int price; }QDataType; typedef struct QListNode {struct QListNode* next;QDataType data; }QNode;//队列的结构 typedef struct Queue {QNode* head;QNode* tail;int size; }Queue;//初始化队列 void QueueInit(Queue* q);//打印 void QueuePrint(Queue* q);//队尾入队列 void QueuePush(Queue* q, QDataType* data); //队头出队列 void QueuePop(Queue* q);//获取队列头部元素 QDataType* QueueFront(Queue* q); //获取队列队尾元素 QDataType* QueueBack(Queue* q);//获取队列中有效元素个数 int QueueSize(Queue* q);//检测队列是否为空如果为空返回非零结果如果非空返回0 int QueueEmpty(Queue* q);//销毁队列 void QueueDestroy(Queue* q);main.c 因为重点在于数据结构队列的使用所以直接给定一些数据就不进行重复繁琐的数据输入工作了。 #define _CRT_SECURE_NO_WARNINGS 1#include Queue.hvoid test() {Queue q;QueueInit(q);QDataType book1 { 活着, 余华, 110701, 22 };QDataType book2 { 人血馒头, 余华, 110702, 21 };QDataType book3 { 人间词话, 王国维, 110703, 23 };QDataType book4 { 小词大雅, 叶嘉莹, 110704, 22 };QDataType book5 { 且听风吟, 村上春树, 110705, 23 };QueuePush(q, book1);QueuePush(q, book2);QueuePush(q, book3);QueuePush(q, book4);QueuePush(q, book5);QueuePrint(q);printf(%d\n\n, QueueSize(q));QDataType* head QueueFront(q);printf(%s %d %s %d\n\n, head-name, head-bno, head-author, head-price);QDataType* tail QueueBack(q);printf(%s %d %s %d\n\n, tail-name, tail-bno, tail-author, tail-price);QueuePop(q);QueuePop(q);QueuePop(q);QueuePrint(q);printf(%d\n, QueueSize(q));QueueDestroy(q); }int main() {test();return 0; }Queue.c 打印函数的实现如果队列中的数据类型发生了改变其他功能函数基本上不需要有什么变化 打印函数对应修改一下就行了因为打印需要涉及到具体的数据问题。 void QueuePrint(Queue* q) {QNode* next q-head;while(next ! NULL){printf(%s %d %s %d\n, next-data.name, next-data.bno, next-data.author, next-data.price);next next-next;}printf(\n); }队列的初始化将头尾指针都置为NULLsize置为0。 //队列初始化 void QueueInit(Queue* q) {q-head NULL;q-tail NULL;q-size 0; }入队列的实现先要创建一个节点来存放数据然后把这个队列插入到队尾。如果这个队列的队尾指针为空就说明这个队列中并没有数据那么这个新插入的数据就既是队首又是队尾。如果队列的队尾指针有值就把新节点插入到当前队尾之后然后再把队尾指针向后移动一位。插入数据之后要将size加一。 void QueuePush(Queue* q, QDataType* x) {assert(q);QNode* newnode (QNode*)malloc(sizeof(QNode));if (newnode NULL){perror(malloc fail);exit(-1);}newnode-data *x;newnode-next NULL;if (q-tail NULL){q-head q-tail newnode;}else{q-tail-next newnode;q-tail newnode;}q-size; }出队列的实现。因为节点是动态开辟的空间所以出队列之后要将这个节点的空间释放掉。队列的特性是先入先出所以出队列就是删除头结点。删除头结点之前要保存第二个节点的位置然后删除掉头结点把第二个节点作为头结点返回。删除数据之后要将size减一。 void QueuePop(Queue* q) {assert(q);assert(!QueueEmpty(q));if (q-head-next NULL){free(q-head);q-head q-tail NULL;q-size--;}else{QNode* del q-head;q-head q-head-next;q-size--;free(del);} }获取队列头部元素这里返回的是一个结构体指针还是为了减少空间的使用因为队列本身就具备头指针所以获取队列头部元素就十分简单。 QDataType* QueueFront(Queue* q) {assert(q);assert(!QueueEmpty(q));return (q-head-data); }获取队列队尾元素一样返回的是一个结构体指针实现和获取头部元素基本一样。 QDataType* QueueBack(Queue* q) {assert(q);assert(!QueueEmpty(q));return (q-tail-data); }获取队列元素个数不要太简单本身就有个size直接返回size就行。 int QueueSize(Queue* q) {assert(q);return q-size; }检测队列是否为空如果为空返回非零结果如果非空返回0。当首尾指针都为空时队列中就必然没有数据。 int QueueEmpty(Queue* q) {assert(q);return q-head NULL q-tail NULL; }队列的销毁因为空间是动态开辟的所以需要释放空间如果不释放空间会造成内存泄露。逐一将队列中的节点空间释放掉最后head和tail的next指针都为NULL也不需要我们手动置为NULL了。 void QueueDestroy(Queue* q) {assert(q);while (q-head){QNode* next q-head;q-head q-head-next;free(next);} }
http://www.hkea.cn/news/14288217/

相关文章:

  • 公司网站建设申请襄阳做网站多少钱
  • 移动互联时代网站建设伪静态规则变动对网站的影响
  • 四川学校网站建设wordpress询价管理
  • 淄博做网站推广公司门户网站字体
  • wordpress公众号授权登录网站如何做seo规划
  • 成都微网站公司做网站的设计流程
  • 网站建设价类型网站运营公司哪家值得推荐
  • 网站后台拿shell广东石油化工建设集团公司网站
  • 福建省建设执业注册中心网站苏网站建设
  • 长沙企业网站制作服务报价公司网站建设攻略
  • 网站建设方案书0朋友圈产品推广文案
  • 做一个自己的免费网站网站备案信息变更
  • 网站建设需求模板装修找什么平台比较好
  • 网站加载速度慢的原因电商推广
  • 找设计师的网站flash中文网站模板
  • 企业网站建设专业做设计的素材网站
  • 河南专业网站建设公司哪家好凡客装修
  • 免费传奇网站域名哪里注册网站建设中html下载
  • 洛阳做网站推广做五金有哪些网站推广
  • 有没有找客户的网站高端建材门店年销售额
  • 卖建材的网站有哪些小型网站搭建
  • 毕业设计餐饮网站建设海东电子商务网站建设
  • 设计必知的设计网站 039wordpress安装超时
  • 有哪些可以做兼职的网站wordpress定期修改密码
  • 租个网站服务器多少钱旅游网站排名前十
  • 专门做化妆品平台的网站做网站用php还是html
  • 如何申请网站空间和注册域名wordpress 图片 筛选 插件
  • 廊坊哪里有做阿里巴巴网站的那些免费网站可以做国外贸易
  • 网站建设推广工作描述自己做免费手机网站吗
  • 长沙企业建站销售电话聚美优品网站怎么做的