首页 > 其他分享 >C语言链式存储(使用引用传递)

C语言链式存储(使用引用传递)

时间:2023-04-30 09:12:25浏览次数:37  
标签:存储 return LinkQueue next 链式 front C语言 LinkNode rear

#include<stdio.h>
#include<stdlib.h>

typedef struct LinkNode
{
int data;
struct LinkNode *next;

} LinkNode;

typedef struct Link
{
LinkNode *front,*rear;//front rear为链表的伴随指针

} LinkQueue;







void InitQueue(LinkQueue &Q) { Q.front=Q.rear=(LinkNode*)malloc(sizeof(LinkNode));//存在头指针的链式队列 Q.front->next=NULL; } bool IsEmpty(LinkQueue &Q) { if(Q.front==Q.rear) return true; else return false; } void EnQueue(LinkQueue &Q,int x) { LinkNode* s=(LinkNode*)malloc(sizeof(LinkNode)); s->data=x; s->next=NULL; Q.rear->next=s;//将新的节点插入 Q.rear=s;//rear指针后移 } bool DeQueue (LinkQueue &Q,int &x) { if(Q.front==Q.rear) return false; LinkNode* p=Q.front->next; if(p==Q.rear) return false; x=Q.front->next->data; Q.front->next=Q.front->next->next; free(p); return true; }


  int main()
{


LinkQueue que;
InitQueue(que);
EnQueue(que,6);
EnQueue(que,3);
EnQueue(que,5);
int n;
DeQueue(que,n);
// 输出为2
printf("n=%d\n",n);


return 0;
}

 

 

标签:存储,return,LinkQueue,next,链式,front,C语言,LinkNode,rear
From: https://www.cnblogs.com/liuyanchao/p/17364898.html

相关文章

  • C语言的存储类别
    存储类别概念对象:硬件中,被存储的每个值都占用一定的物理内存,c语言吧这样的一块内存成为对象标识符:标识符用来指定特定的对象存储期:用来描述对象,描述对象在内存中保留了多长时间作用域、用来描述标识符,描述程序中可以访问标识符的区域链接:用来描述标识符,c语言有3中链接属性:......
  • C语言函数大全-- s 开头的函数(3)
    C语言函数大全本篇介绍C语言函数大全--s开头的函数(3)1.sleep1.1函数说明函数声明函数功能unsignedintsleep(unsignedintseconds);它是C语言标准库中的函数,用于使当前进程挂起一定的时间。在挂起期间,操作系统会将该进程从调度队列中移除,直到指定的时间过去为......
  • c语言创建队列的链式存储
    #include<stdio.h>#include<stdlib.h>typedefstructLinkNode{intdata;structLinkNode*next;}LinkNode;typedefstructLink{LinkNode*front,*rear;//frontrear为链表的伴随指针}LinkQueue;//初始化voidInitQueue(LinkQueue*......
  • c语言报错 [Error] invalid initialization of non-const reference of type 'LinkQue
     进行地址传递是出现报错临时值不能作为非常量引用参数进行传递所以需要在main函数中·重新定义指针传递 ......
  • 4.存储过程
    1、创建一个存储过程,测试课程号为j005是否有成绩。CREATEPROCEDUREcheck_grade_for_j005_1ASBEGINDECLARE@OutputValueVARCHAR(100);IF(SELECT课程号FROM课程表WHERE课程号='j005')='j005'SET@OutputValue='Gradesforcoursej005exist.';ELSESET......
  • 希望所有计算机学生能看到这篇c语言教程
    大部分程序员走入编程世界第一个学习的语言就是C语言。作为一门古老的编程语言,c语言拥有48年的发展历程。为什么要学习C语言?C语言是学习计算机程序设计语言的入门语言。最全面的编程面试网站C语言是一门偏底层的语言,学好它,可以让你更好的了解计算机。学会了C语言,你就能学习......
  • c语言中inline用法
    使用inline函数可以提升程序效率,但是让inline函数生效是有条件的...打开Linux内核源代码,会发现内核在定义C语言函数时,有很多都带有“inline”关键字,请看下图,那么这个关键字有什么作用呢? inline关键字的作用在C语言程序开发中,inline一般用于定义函数,inline函数也被称作......
  • C语言函数大全-- s 开头的函数(2)
    C语言函数大全本篇介绍C语言函数大全--s开头的函数(2)1.setlinestyle1.1函数说明函数声明函数功能voidsetlinestyle(intlinestyle,unsignedupattern,intthickness);设置当前绘图窗口的线条样式、线型模式和线条宽度参数:linestyle:线条样式,取值范围......
  • C语言复习
    环境配置(Windows、Linux、Mac)https://fishc.com.cn/forum.php?mod=forumdisplay&fid=329&filter=typeid&typeid=571java与C语言的对比linux运行代码转义字符define把所有出现的标识符全部转换为常量写法:#define标识符常量例如#defineURL"www.baidu.com"#defineD......
  • EF Core 中原生SQL、存储过程、视图的使用
    包括EFCore中原型Sql的执行,包括存储过程和视图数据处理方法,同时包括参数化执行sql语句的注意事项。原生Sql查询原生sql查询使用如下两个方法进行,查询的结构只能映射到dbset关联的对象类型DBSet.FromSqlRaw()DBSet.FromSqlInterpolated()可以使用部分linq扩展方法.FromSqlR......