`

C语言链队列的基本操作

阅读更多

//链队列的初始化及入队出队操作,XP3+VC6.0 运行下通过。
#define OVERFLOW -2
#define ERROR 0
#include <stdio.h>
typedef int QElemType;
typedef struct QNode {
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;

typedef struct {
QueuePtr front; //队头指针
QueuePtr rear; //队尾指针
}LinkQueue;

//初始化队列
void InitQueue(LinkQueue *Q)
{
Q->front=Q->rear=(QueuePtr)malloc(sizeof(QNode));
if (!Q->front) exit(OVERFLOW);
Q->front->next=NULL;
}
//入队列
void EnQueue(LinkQueue *Q,QElemType e)
{
//插入元素e为Q的新的队尾元素
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
if(!p) exit(OVERFLOW);
p->data=e; p->next=NULL;
Q->rear->next=p;
Q->rear=p;
}
//出队列
void DeQueue(LinkQueue *Q, QElemType *e)
{
//若队列不空则删除Q的头元素,用e返回其值。
QueuePtr p;
if(Q->front==Q->rear) exit(ERROR);
p=Q->front->next;
*e=p->data; // 一定是*e
Q->front->next=p->next;
if(Q->rear==p) Q->rear=Q->front;
free(p);
}

void main()
{
LinkQueue *Q;
QElemType e;
int i;
InitQueue(&Q);
printf("请输入5个整数:");
for(i=0; i<5; i++)
{
scanf("%d",&e);
EnQueue(&Q,e);
}

printf("\n");
printf("输出结果为:");
while (Q->front!=Q->rear)
{
DeQueue(&Q,&e);
printf("%d,",e);
}
printf("\n");

}

运行结果:

请输入5个整数:50 60 80 20 100

输出结果为:50,60,80,20,100

 

分享到:
评论

相关推荐

    C语言队列的基本操作

    本文详细介绍了C语言中队列的基本操作实现方法,包括顺序队列和链队列的实现。这些基本操作是队列数据结构的核心部分,掌握它们有助于更好地理解和应用队列这一数据结构。无论是学习还是实际开发中,熟练掌握这些...

    数据结构 严蔚敏 C语言版 链队列表示与实现

    在链队列的实现过程中,我们需要实现以下几个基本操作: 1. 初始化队列:创建空队列,将队首和队尾指针都设为NULL。 2. 入队操作(enqueue):在队尾添加新元素。首先创建新的节点,然后将其插入到队尾,并更新队尾...

    链式队列的基本运算

    链式队列是一种在计算机科学中广泛使用的数据结构,它基于链表实现,与传统的数组队列相比,具有更大的灵活性...通过学习和实践这些基本操作,可以深入理解链式队列的原理,并为更复杂的算法和数据结构打下坚实的基础。

    c语言数据结构 链队列的基本操作

    链队列的基本操作 (1)建立链表队列 (2)入队一个元素 (3)出队一个元素 c语言实现的哦!!! 配c语言版的数据结构!!

    C语言中队列的链式表示和实现,链队列

    ### 链队列的基本操作 1. **初始化队列**:创建一个空队列,队列的前端和后端都指向NULL。 2. **入队(enqueue)**:在队列尾部添加一个新元素。如果队列为空,新元素既是头部也是尾部;否则,新元素成为尾部,原...

    c语言实现队列功能

    总的来说,`cquene.cpp`和`cquene.h`组合提供了C语言实现队列功能的核心代码,涵盖了队列的基本操作,并考虑了多字节和单字节数据的处理。这样的实现有助于简化其他程序对队列的使用,提高代码的可复用性和效率。...

    链队列C程序

    链队列

    c语言 银行取号排队队列程序 (源码)

    C语言是一种强大的、低级的编程语言,它提供了直接操作内存的能力,这使得我们可以直接创建和管理队列。在C语言中,队列可以通过数组或链表来实现。在这个案例中,我们可能会使用数组,因为它在内存中连续存储元素,...

    C语言实现队列和相关操作的代码

    根据给定的C语言代码,我们可以深入探讨队列这一数据结构以及如何在C语言中实现队列的基本操作。队列是一种先进先出(First In First Out, FIFO)的数据结构,这意味着最先加入队列的元素将最先被移除。在计算机科学...

    数据结构:链队列

    链队列的插入操作(入队)在队尾进行,这通常涉及更新队尾指针。删除操作(出队)则在队首进行,需要更新队首指针并释放队首节点。由于链式结构的特性,这两种操作的时间复杂度都是O(1),非常高效。 链队列与数组...

    C语言实现队列源码,包含顺序队列,链式队列,循环队列,亲测可用

    这些源代码提供了实现队列功能的基本框架,包括初始化队列、入队、出队、查看队头元素、检查队列是否为空和已满等操作。在实际编程中,我们还需要考虑错误处理,如内存分配失败、非法操作等情况,确保程序的健壮性。...

    用链栈实现链队列逆置(栈的指针的实现的应用)

    通过对上述代码的分析,我们不仅了解了链队列的基本概念及其操作方法,还学习了如何利用链栈来实现链队列的逆置。这种技术在实际编程中非常有用,尤其是在需要高效地反转数据结构的场景下。掌握了这些核心知识点,有...

    duilie.rar_ duilie_C语言 队列_C语言队列_duilie_循环队列

    总结来说,这个压缩包提供了一个学习C语言实现链队列和循环队列的宝贵资源,对想要提升C语言编程技能,尤其是数据结构和算法理解的开发者来说非常有价值。通过实践这些示例,可以更好地掌握队列这一基本数据结构及其...

    C语言单链队列的表示与实现实例详解

    C语言的队列(queue),是指先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。 而单链队列使用...

    C语言实现链队列

    C语言实现链队列 C语言实现链队列是指使用C语言来实现链队列数据结构的方法和过程。本文将详细介绍C语言实现链队列的过程,并提供了完整的代码实现。 链队列是一种基本的数据结构,它可以在程序中存储和管理大量的...

    数据结构(C语言版)——链队列(代码版)

    下面我们将深入探讨链队列的概念、其在C语言中的实现方式以及描述中提到的基本操作。 ### 链队列概念 链队列是由一系列节点组成,每个节点包含数据元素和指向下一个节点的指针。队头是链队列的第一个节点,队尾是...

    C语言版实现链队列

    "C语言版实现链队列" 链队列是一种特殊的数据结构,它可以实现队列的基本操作,如入队、出队...链队列是C语言中的一种常见的数据结构,可以用于实现队列的基本操作,但是需要注意内存的管理和队列的长度和容量等问题。

    C语言线性表之队列算法一:链式队列原码

    在实际的代码实现中,通常会封装这些操作成一个队列类或者结构体,包括相应的成员变量(如头结点和尾结点指针)以及成员函数(对应上述的基本操作)。通过这样的封装,可以方便地在程序中使用队列。 在`...

    C语言实现队列

    根据给定的文件信息,我们可以总结出以下关于“C语言实现队列”的详细知识点: ### 一、基础知识 #### 1.1 数据结构定义 ...通过这些函数,可以方便地实现对队列的基本操作,如入队、出队、判断队列是否为空等。

Global site tag (gtag.js) - Google Analytics