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

1高端网站建设直缝钢管网站建设

1高端网站建设,直缝钢管网站建设,襄阳建设21网站,重庆的主要的网站队列 先进先出 使用单链表进行队尾插入 队头删除 其中带头结点直接尾插#xff0c;不带头结点第一次操作要判断一下 但是带头结点需要malloc和free 函数传需要修改的参数方法 1、二级指针 2、带哨兵位的头结点 3、返回值 4、如果有多个值#xff0c;用结构体封装起来…队列 先进先出 使用单链表进行队尾插入 队头删除 其中带头结点直接尾插不带头结点第一次操作要判断一下 但是带头结点需要malloc和free 函数传需要修改的参数方法 1、二级指针 2、带哨兵位的头结点 3、返回值 4、如果有多个值用结构体封装起来 可以把头指针和尾指针放到结构体里面就不用二级指针了。 他们是结构体成员想要改变就可以用结构体指针 Queue.h #pragma once #includestdio.h #includeassert.h #includestdlib.h #includestdbool.htypedef int QDataType;typedef struct QueueNode {QDataType val;struct QueueNode* next; }QNode;typedef struct Queue {QNode* phead;QNode* ptail;int size; }Queue;void QInit(Queue* pq); void QDestroy(Queue* pq); void QPush(Queue* pq, QDataType x); void QPop(Queue* pq);//取队头的数据 QDataType QFront(Queue* pq);//取队尾的数据 QDataType QBack(Queue* pq);//判断链表是否为空 bool QEmpty(Queue* pq);//求队长度 int QSize(Queue* pq); Queue.c #define _CRT_SECURE_NO_WARNINGS #includeQueue.hvoid QInit(Queue* pq) {assert(pq);pq-phead NULL;pq-ptail NULL;pq-size 0; }void QDestroy(Queue* pq) {assert(pq);QNode* cur pq-phead;while (cur) {pq-phead pq-phead-next;free(cur);cur pq-phead;pq-size --;}pq-ptail NULL; }void QPush(Queue* pq, QDataType x) {assert(pq);QNode* newnode (QNode*)malloc(sizeof(QNode));if (newnode NULL) {perror(malloc);return;}newnode-next NULL;newnode-val x;if (pq-phead NULL) {pq-phead newnode;pq-ptail newnode;}else {pq-ptail-next newnode;pq-ptail pq-ptail-next;}pq-size; }void QPop(Queue* pq) {assert(pq);assert(pq-phead);QNode* del pq-phead;pq-phead pq-phead-next;free(del);del NULL;if (pq-phead NULL) {pq-ptail NULL;}pq-size--; }//取队头的数据 QDataType QFront(Queue* pq) {assert(pq);assert(pq-phead);return pq-phead-val; }//取队尾的数据 QDataType QBack(Queue* pq) {assert(pq);assert(pq-phead);return pq-ptail-val; }//判断链表是否为空 bool QEmpty(Queue* pq) {assert(pq);return pq-phead NULL; }//求队长度 int QSize(Queue* pq) {assert(pq);return pq-size; } Test.c #define _CRT_SECURE_NO_WARNINGS #includeQueue.hint main() {Queue q;QInit(q);QPush(q, 1);QPush(q, 2);QPush(q, 3);QPush(q, 4);QPush(q, 5);int size QSize(q);printf(%d\n, size);while (!QEmpty(q)) {printf(%d , QFront(q));QPop(q);}printf(\n);size QSize(q);printf(%d\n, size);QDestroy(q); } 练习 用队列实现栈 这里有typedefMyStack就是类型 没有typedefMyStack就是变量且这个结构体只能创建这一个变量 思路 空的队列用来出仅存的那一个数据 满的队列用来存剩下的全部数据 如果直接free(obj)则相当于只free了这个结构体但是链表里可能还有数据所以要先分别Destroy一下 用栈实现队列 思路 1、建立两个栈一个用来存放数据pushst一个用来改变成正确的顺序然后出栈popst 等popst出空了再倒过来数据效率更高 2、凡是看到这样一个返回值都需要malloc否则只是创建了局部变量出了作用域就被销毁了 3、此处可以手动初始化栈也可以调用之前写好的完整的一套函数去初始化推荐 访问结构体里的变量用 .  4、内部实现 STInit需要传的是栈的地址对栈进行操作 5、结构体 和 结构体的指针 是有区别的结构体的指针只是一个地址。 如果定义结构体时定义成了上面这样 则相当于malloc了pushst和popst这两个指针但是这两个指针没有具体只的内容和空间如果没有初始化就是野指针。同时还需要malloc栈的空间
http://www.tj-hxxt.cn/news/222413.html

相关文章:

  • 南昌高端网站开发费用表南京移动网站建设报价
  • 专业苏州网站建设公司汽车品牌大全汽车网
  • wordpress会员介绍页株洲seo优化官网
  • 移动互联网平台有哪些西安seo培训
  • 上海装修网站建设摄影网站的意义
  • 网站设计目前和将来的就业前景ui网页设计方法
  • 做国外的众筹网站有哪些wordpress怎么都是英文
  • 在网站做博客美仑美家具的网站谁做的
  • 门户网站是用户上网的第一入口引流推广app
  • 公司网站备案去哪里备案火车头导入wordpress
  • 福清网站建设网络推广计划
  • 做er图的网站网站备案多长时间
  • 做全景网站电商设计公司排名
  • 云南建网站的公司腾讯企业邮箱登录入口手机
  • 国外网站空间 月付免费企业网站认证
  • 用网站做平台株洲网站建设网站
  • 吴忠网站建设wordpress父菜单可点击
  • 网站制作的页面比例中视频自媒体注册
  • 网站开发文本大良网站建设市场
  • 无锡新吴区住房和建设交通局网站做任务的网站源码
  • 海南做网站的公司哪家好高端建设网站企业
  • 校园网站规划与建设心得做网站的公司名称
  • 怎么查网站关键词密度wordpress 侧边收起
  • 南昌知名的网站建设公司网站数据抓取怎么做
  • 南昌有哪些企业网站wordpress页脚小工具
  • 学动漫制作去哪个学校一键优化是什么意思
  • 网站设计和内容上的不足和建议网站可以做章子吗
  • 网站的空间是啥北京网站制作闪快
  • 自己这么做网站青岛仿站定制模板建站
  • 平台网站制作公司杭州设计 公司 网站建设