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

   #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. 9种CSS3炫酷图片展开预览展示动画特效

    详细内容请点击 在线预览立即下载 这是一组共9款CSS3炫酷图片预览展示动画特效插件.css的新特性可以让我们制作出各种炫酷的动画效果.该图片预览展示动画特效就是一个很好的例子,该效果开始时图片堆叠在 ...

  2. 纯css3 transforms 3D文字翻开翻转3D开放式效果

    详细内容请点击 在线预览立即下载 在本教程中,将基于CSS3创建的一个实现一个有趣的3D开放式效果.教程的目的是展示我们如何能带来一些生活上使用CSS3 . html: <ul class=&q ...

  3. 【转载]】Microsoft SQL Server, 错误:4064的解决方法

    SQL SERVER – Fix : Error: 4064 – Cannot open user default database. Login failed. Login failed for u ...

  4. Part 94 Difference between Monitor and lock in C#

  5. C#中ToString和Formate格式大全

    C#中ToString格式大全 stringstr1 =); //result: 56,789.0 stringstr2 =); //result: 56,789.00 stringstr3 =); ...

  6. 使用jquery插件报错:TypeError:$.browser is undefined的解决方法

    关于$.browser browser就是用来获取浏览器基本信息的. jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.sup ...

  7. SpringMvc入门三----控制器

    在传统的Spring MVC开发方法中,必须在Bean配置文件中为每个控制器类配置实例和请求映射和让每个控制器类去实现或者扩展特定于框架的接口或者基类,不够灵活. 如果Spring MVC可以自动侦测 ...

  8. ZigBee协议基本介绍

    ZigBee是一种短距离(10~100米).低速率(20~250Kbps).底成本.低功耗的无线网络技术,主要用于近离无线通讯.能够做到在数千个微小的传感器之间相互协调实现通讯,这些传感器只需要很少的 ...

  9. vector C++ 详细用法

    vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vec ...

  10. WP开发笔记——程序的退出方法

    Windows Phone程序中,并没有之前的类似于“App.Exit()”之类的函数用来让你退出程序.这是怎么回事儿呢? 很简单,在Windows Phone 7中系统要求配备了硬件的“Back”键 ...