数据结构学习笔记(二) 链表之链队列基本操作

本文介绍了一种链队列的数据结构实现方法,并详细展示了链队列的基本操作,包括入队、出队、读取队头元素及打印队列等。通过具体的C++代码示例,读者可以了解到链队列的具体运作方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是链队列的一些基本操作,包括链队列的入队、出队、读队头元素以及打印。

#include<iostream>
using namespace std;
//抽象数据类型
typedef int datatype;
typedef struct node
{
    datatype data;
    struct node *next;
}QueueNode;
typedef struct
{
    QueueNode *front;
    QueueNode *rear;
}LinkQueue;

//链队列的插入(入队)
void EnQueue(LinkQueue &QU,datatype x)
{
    QueueNode *p=new QueueNode;
    p->data=x;
    p->next=NULL;
    if(QU.front==NULL)
        QU.front=QU.rear=p;
    else
    {
        QU.rear->next=p;
        QU.rear=p;
    }
}

//链队列的删除(出队)
void DeQueue(LinkQueue &QU)
{
    //参数检查
    if(QU.front==NULL)
    {
        cout<<"列队为空(underflow)!"<<endl;
        return;
    }
    else
    {
        QueueNode *q=QU.front;
        QU.front=q->next;
        delete q;
    }
}

//读链队列的队头元素
datatype GetFront(LinkQueue &QU)
{
    //参数检查
    if(QU.front==NULL)
    {
        cout<<"列队为空(error)!"<<endl;
        return 0;
    }
    return QU.front->data;
}

//打印链队列
void Print(LinkQueue &QU)
{
    QueueNode *r=QU.front;
    while(r!=NULL)
    {
        cout<<r->data<<" ";
        r=r->next;
    }
    cout<<endl;
}

//主方法
int main()
{
    LinkQueue QU;
    QU.front=QU.rear=NULL;
    datatype x;
    cout<<"请输入要入队的元素,并以0为结尾:"<<endl;
    while(cin>>x,x!=0)
        EnQueue(QU,x);
    cout<<"则队列中的元素为:"<<endl;
    Print(QU);
    cout<<"读取的对头元素为:"<<endl<<GetFront(QU)<<endl;
    cout<<"一个元素出队之后的链队列为:"<<endl;
    DeQueue(QU);
    Print(QU);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值