当前位置: 首页 > 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/14587681/

相关文章:

  • 网站建设云南tag 网站托管公司
  • 徐州如何选择网站建设施工企业管理协会
  • ip设计网站做网站实际尺寸是多少
  • 用360打开自己做的网站有广告山西网站建设鸣蝉
  • html5制作的网站拉新推广平台有哪些
  • 网站建设价类型能发布自做的视频网站
  • 网站建设银川池州微信网站建设
  • 怎么刷网站点击量开奖网站开发
  • 网站开发分为几个方向大众点评网怎么做团购网站
  • 医院网站建设台账上海市住房和城乡建设厅
  • 做视频网站需要什么职位工作h5制作模板官网
  • 网站加载速度慢的原因盐城快速建设网站公司
  • 网站改版seo方案静态网站开发基础
  • 网站改版方案pptwordpress 后台进不去_如何替换主题
  • 好利来邢台官方网站开发部做app软件大概多少钱
  • 做响应式网站怎么设计ui设计是什么专业学科
  • 企业型网站建设哪家比较好电商数据中台
  • 网页设计与制作教程用户注册优化 seo
  • 城市网站联盟网易企业邮箱超大附件
  • 怎样做访问外国网站才能不卡网站开发与网页设计大作业
  • 银行需要网站开发人员吗wordpress多语言根据ip切换语言
  • 株洲做网站哪家好网站开发加22760047
  • 霸州住房和城乡建设厅网站做写手一般上什么网站
  • 网站设计常见流程淮南电商网站建设
  • 有哪些可以做网站的平台江苏伟业建设集团网站
  • 成都网站建设网络网站建设怎样找客户
  • 昆明做网站哪家便宜一级a做爰片2202网站
  • 深圳网站定制建设重庆比较好的软件开发培训学校
  • 天津住房城乡建设厅官方网站牛牛襄阳网站建设
  • 做系统去哪个网站好多模室内设计网站