用链表实现了队列,完成了队列的入队和出队功能。

   #include"stdio.h"

   typedef int element;

   typedef struct Node{
struct Node *next;
element data;
}*pNode; typedef struct QNode{
pNode front,rear;
}*Linknode; //init a empty queue
element Init_queue(Linknode *pLinknode)
{
Linknode P;
P=*pLinknode;
P->front=P->rear=(pNode)malloc(sizeof(struct Node));
P->front->next=P->rear->next=NULL;
} //add a data to queue rear
element Add_queue(Linknode *pLinknode,int num)
{
Linknode P;
P=*pLinknode;
pNode s=(pNode)malloc(sizeof(struct Node));
s->data=num;
s->next=NULL;
P->rear->next=s;
P->rear=s;
printf("add data:%d\n",P->rear->data);
} //delet a data from queue front
element Delet_queue(Linknode *pLinknode)
{
if(((*pLinknode)->front)==((*pLinknode)->rear))
{
printf("queue is empty!!");
return ;
}
Linknode P;
pNode k;
P=*pLinknode;
k=P->front->next;
P->front->next=k->next;
printf("delet data:%d\n",k->data);
free(k);
return ;
} element Print_queue(Linknode pLinknode)
{
pNode p;
p=pLinknode->front;
while(p!=pLinknode->rear)
{
p=p->next;
printf("data:%d\n",p->data);
}
}
element main()
{
Linknode pQnode;
pQnode=(Linknode)malloc(sizeof(struct QNode));
Init_queue(&pQnode);
Add_queue(&pQnode,);
Add_queue(&pQnode,);
Add_queue(&pQnode,);
Add_queue(&pQnode,);
Add_queue(&pQnode,);
Add_queue(&pQnode,);
Print_queue(pQnode);
Delet_queue(&pQnode);
Delet_queue(&pQnode);
Delet_queue(&pQnode);
Print_queue(pQnode);
return ;
}

c语言编程之队列(链表实现)的更多相关文章

  1. C语言编程学习:链表的来源分析

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  2. c语言编程之栈(链表实现)

    用链表实现栈,完成了出栈入栈功能. #include"stdio.h" typedef int element; //define a struct descirbe a stac ...

  3. 华为C语言编程规范

    DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...

  4. linux 操作系统下c语言编程入门

    2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理  ...

  5. [C] 在 C 语言编程中实现动态数组对象

    对于习惯使用高级语言编程的人来说,使用 C 语言编程最头痛的问题之一就是在使用数组需要事先确定数组长度. C 语言本身不提供动态数组这种数据结构,本文将演示如何在 C 语言编程中实现一种对象来作为动态 ...

  6. C语言编程规范试题

    C语言编程规范试题 [说明]: 1.本试题中不考虑头文件引用问题(假定已经包含正确的头文件),C语言的标准函数都可用: 2.如果不特别说明,假定程序运行环境为:操作系统Windows 2000, VC ...

  7. 20191310李烨龙Linux C语言编程基础

    Linux C语言编程基础 任务详情 0. 基于Ubuntu或OpenEuler完成下面的任务(OpenEuler有加分) 1. 选择教材第二章的一节进行编程基础练习(2.10,2.11,2.12,2 ...

  8. C语言编程实现Linux命令——who

    C语言编程实现Linux命令--who 实践分析过程 who命令是查询当前登录的每个用户,它的输出包括用户名.终端类型.登录日期及远程主机,在Linux系统中输入who命令输出如下: 我们先man一下 ...

  9. 个人c语言编程风格总结

    总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的.首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的. 一件事情,做成和做好中间可能隔了 ...

随机推荐

  1. PowerDesigner的数据类型

    用PowerDesigner 15 设计个数据库,每个字段的数据类型设计真是头大,根据字段意思看用哪个类型最合适还得仔细研究呀.贴几个数据类型表格收藏一下^_^ Numeric data types ...

  2. Part 82 to 85 Talking about Generic queue, stack collection class

    Part 82   Generic queue collection class Part 83   Generic stack collection class Part 84   Real tim ...

  3. C#完全无客户端访问Oracle

    网上太多的C#无客户端访问oracle案例,经我测试无一成功,特将我在oracle官网上和自己琢磨总结,终于成功,废话不多说,直接上项目. 一,准备条件 (由于我这里是用的控制台程序来测试的,所以将上 ...

  4. MSSQL数据库逻辑文件名修改与查看

    逻辑文件名是什么 你用的程序连接的时候使用的是数据库名,然后你在你的数据库右击属性的时候,左上角单击"文件",可以看到,数据库名和逻辑文件名是不一样的,你可以看自己的数据库的路径下 ...

  5. Centos与win8.1的双系统

      背景:win8.1系统已经安装完成,并在此基础之上使用光盘或者U盘来安装centos系统,最终实现双系统   1.         在win8.1系统下查看磁盘及分区情况   2.         ...

  6. c# SQL CLR 之一

    CLR就是公共运行时,本文就对c#编写SQL StoredProcedures的过程进行简单讲解. [步骤] 2. 3. 7.打开设置 8. 注意删除方式:注意删除Assembly时,一定要先把引用此 ...

  7. dicom格式文件 界定标识符的处理

    转自:http://www.cnblogs.com/assassinx/archive/2013/05/18/3084854.html 说到底无非几个事情 :1传输语法确定 2数据元素读取 3 7fe ...

  8. SQL学习备忘

    1.按照拼音首字母的正序或倒序排序 SELECT CREATOR_REALNAME FROM tableName ORDER BY NLSSORT(CREATOR_REALNAME, 'NLS_SOR ...

  9. 8款最受欢迎的HTML5/CSS3应用及源码

    新的一周开始,小编也将继续为大家分享精彩的HTML5应用,还有CSS3和jQuery方面的东西.今天给大家带来的是8款最受欢迎的HTML5/CSS3应用及代码,一起来看看吧. 1.基于HTML5 Ca ...

  10. java.util.TreeSet源码分析

    TreeSet是基于TreeMap实现的,元素的顺序取决于元素自身的自然顺序或者在构造时提供的比较器. 对于add,remove,contains操作,保证log(n)的时间复杂度. 因为Set接口的 ...