前言
本文章主要介绍的是链队列的入队与出队操作。
问题引入
输入描述
整数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