【链表】链队列入队与出队

导读:本篇文章讲解 【链表】链队列入队与出队,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言

 本文章主要介绍的是链队列的入队与出队操作。

问题引入

 输入描述

整数n表示有n个元素

n个元素

输出描述

按照出队顺序输出n个元素

具体代码

/**
 * main函数返回值不能为void,否则会汇编出错,请使用int main(),并在最后return 0。
 * 虽然VC等windows下的编译器支持,但C/C++标准中不允许使用void main()!
 */
#include<iostream>
#include<fstream>
using namespace std;

#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef char QElemType;
typedef int Status;
typedef char SElemType;

//- - - - - 队列的链式存储结构- - - - - 
typedef struct QNode {
QElemType data;
struct QNode *next;
} QNode, *QueuePtr;
typedef struct {
QueuePtr front; //队头指针
QueuePtr rear; //队尾指针
} LinkQueue;
Status EnQueue(LinkQueue &Q, QElemType e); 

//算法3.16 链队的初始化
Status InitQueue(LinkQueue &Q) {//构造一个空队列Q
Q.front = Q.rear = new QNode; //生成新结点作为头结点,队头和队尾指针指向此结点
Q.front->next = NULL; //头结点的指针域置空
return OK;
}


int main() {
LinkQueue Q;
QueuePtr p;
QElemType e, j;
int n,i;
InitQueue(Q);
cin>>n;     //输入n的值
for(i=0;i<n;i++)
    {
    cin>>e;     //输入e的值
    EnQueue(Q, e);
    }
//链队列出队
p=Q.front;
while(p->next)
    {
    cout<<p->next->data<<endl;     //输出p->next->data的值
    p=p->next;
}
return 0;
}

//链队列入队
Status EnQueue(LinkQueue &Q, QElemType e){
    QueuePtr p;
    p = new QNode; //为入队元素分配结点空间,用指针p指向
    p->data = e;
    p->next = NULL;
    Q.rear->next = p;
    Q.rear = p;
    return OK;
}

 问题结果

 样例输入

3
A
B
C

样例输出

A
B
C

🌴END

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/61476.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!