数据结构04队列的基本操作
- 格式:doc
- 大小:104.50 KB
- 文档页数:10
【编程】python软件编程等级考试(三级)编程实操题04一、选择题1.已知字符串a="python",则a[1]的值为()A."p" B."py" C."Py" D."y"2.已知a=-2,b=10/3,则python表达式round(b,1)+abs(a)的值为()A.1.3 B.5.33 C.5.4 D.5.33.下面Python代码运行后,a、b的值为( )a=23b=int(a/10)a=(a-b*10)*10b=a+bprint(a,b)A.23 2B.30 20C.30 32D.3 24.队列在Python中,用()实现队列的创建,队列的基本操作:()()()()线性数据结构又称线性表。
A.随机;入队;出队;求队长;判队空B.列表;入队;出队;求队长;判队空C.列表;随机;出队;求队长;判队空D.入队;随机;列表;求队长;判队空5.我们可以对文本中词频较高的分词,通过词云图给予视觉上的突出,小明打算用Python程序来生成词云图,程序中需要用到以下哪个第三方库?()A.WordCloud B.math C.random D.turtle6.检测输入的四位整数abcd是否满足下述关系:(ab+cd)(ab+cd)=abcd。
实现上述功能的python程序代码如下:k=int(input(“输入一个四位数:”))①y=k%100if ② :print(“符合”)else:print(“不符合”)划线处应填入的代码是()A.①x=k/100 ②(x+y)*2!=k B.①x=k//100 ②(x+y)*2==kC.①x=k/100 ②(x+y)**2!=k D.①x=k//100 ②(x+y)**2==k7.下列选项中不能正确表达Python中的赋值语句的是()A.X,Y=5,8 B.X=Y=5 C.X =Y+X D.10=X+Y8.以下哪种语言属于高级程序设计语言()①python ②c++ ③visual basic ④javaA.①②③B.②③C.②③④D.①②③④9.在Python语言中,用来定义函数的关键字是()。
数据结构队列实验报告
《数据结构队列实验报告》
实验目的:通过实验观察和分析队列数据结构的基本特性和操作,加深对队列
的理解和掌握。
实验内容:
1. 实现队列的基本操作:入队、出队、判空、判满等;
2. 使用队列解决实际问题:如模拟排队、实现广度优先搜索等;
3. 对队列的性能进行分析和比较。
实验步骤:
1. 设计并实现队列的基本操作函数;
2. 编写测试程序,对队列进行入队、出队等操作;
3. 使用队列解决实际问题,观察队列的应用效果;
4. 对队列的性能进行分析,比较不同实现方式的性能差异。
实验结果:
1. 队列的基本操作函数能够正确地实现入队、出队等操作;
2. 使用队列解决实际问题时,队列能够有效地管理数据,提高问题的解决效率;
3. 对队列的性能进行分析后发现,在数据量较大时,不同实现方式的性能差异
较大。
实验结论:
通过本次实验,深入理解了队列数据结构的基本特性和操作,并掌握了队列的
应用方法。
同时,通过对队列的性能进行分析和比较,也加深了对数据结构的
性能优化的理解。
队列作为一种重要的数据结构,在实际应用中具有广泛的用
途,对其理解和掌握对于提高程序的效率和性能具有重要意义。
名词解释)队列
队列是用来排序有限数量数据的一种线性结构,它采用“先进先出”(FIFO)的特性,让先进
入的数据先离开,后进入的数据后离开,以此建立一个严格的有序操作系统。
队列的基本操作包括:入队、出队和“死队”(即队列已经满不能再加入新的数据)。
入队
指的是将数据加入队列中,出队指的是将数据离开队列,而死队则指队列已满,不能再加
入新的数据。
队列可以用来处理有序数据,比如在计算机中的程序调度与打印队列调度等,同时,这种线形结构对于解决一些数据结构问题也有着重要的价值,比如线索二叉树的序列化、使用层次遍历实现树的序列化等。
另外,队列也有着广泛的应用,比如在银行排队、抢购火车票等情况中,都可以采用一个“先到先服务”的模式,使得客户最大化获得服务,也给银行和抢票人员实现了有效的服务。
综上所述,队列是一种非常具有实用价值的数据结构,是为程序调度和有序数据处理提供了重要的指导,也在日常生活中有着实实在在的作用。
队列基本操作
队列是一种线性数据结构,它按照先进先出(FIFO)的原则存储和检索数据。
队列的基本操作包括:
入队(Enqueue):将元素添加到队列的末尾,使其按照先进先出的顺序进行存储。
出队(Dequeue):从队列的头部取出元素,并删除它,使其按照先进先出的顺序进行检索。
查看队头(Peek):查看队列中第一个元素,但不删除它。
队列大小(Size):获取队列中元素的数量。
队列是否为空(Empty):判断队列中是否没有元素。
队列首尾指针(Front,Back):分别指向队列的头部和尾部,其中Front表示队列的第一个元素的索引,Back表示队列的最后一个元素的索引。
队列队列长度(Queue):获取队列中所有元素的数量。
队列是否满(Full):判断队列中元素的数量是否达到了最大容量。
队列移动(Move):将队列中的元素顺序进行移动。
队列重置(Reset):将队列中的元素全部删除,使其变为空队列。
数据结构队列注意事项队列是一种常用的数据结构,它具有先进先出(First In First Out,FIFO)的特点。
队列主要由两个基本操作组成:入队(enqueue)和出队(dequeue)。
入队操作在队列的末尾添加一个元素,而出队操作则从队列的头部移除一个元素。
在使用队列的过程中,有一些注意事项需要我们特别关注。
下面我将从几个方面来详细介绍。
首先是队列的初始化。
在使用队列之前,我们需要先进行初始化操作,即创建一个空队列。
初始化操作可以分为两种方式:静态初始化和动态初始化。
静态初始化是在编译时确定队列的大小,并为队列分配相应的内存空间。
这种方式的优点是创建队列的速度较快,但是缺点是队列的大小固定,无法动态调整。
动态初始化是在运行时根据需要动态为队列分配内存空间。
这种方式的优点是队列的大小可以根据实际情况进行动态调整,但是缺点是创建队列的速度较慢。
其次是队列的操作。
队列主要包括入队和出队两个基本操作,除此之外还有获取队头元素、判断队列是否为空、判断队列是否已满等操作。
入队操作是向队列的末尾添加一个元素。
当队列为空时,入队操作相当于同时修改队头和队尾指针的值。
当队列不为空时,入队操作只需修改队尾指针的值。
出队操作是从队列的头部移除一个元素。
当队列为空时,出队操作是非法的,需要进行错误处理。
当队列只有一个元素时,出队操作相当于同时修改队头和队尾指针的值。
当队列有多个元素时,出队操作只需修改队头指针的值。
获取队头元素是返回队列的头部元素,但不进行出队操作。
当队列为空时,获取队头元素是非法的,需要进行错误处理。
判断队列是否为空是判断队列中是否有元素。
当队列为空时,即队头和队尾指针相等时,队列为空。
判断队列是否已满是判断队列中是否还有空闲空间。
当队列已满时,即队尾指针指向队列的最后一个位置时,队列已满。
再次是队列的应用。
队列在计算机领域有着广泛的应用,例如操作系统中的进程调度、网络通信中的消息传递、图形图像处理中的像素渲染等。
队列的基本操作应⽤---舞伴问题(数据结构实验项⽬三)课程名称:数据结构实验⽬的:1.掌握队列的定义及实现;2.掌握利⽤队列的基本操作。
实验要求:1、使⽤链式结构完成队列的各种基本操作;2、补充完善教材81页的舞伴问题。
实验项⽬名称:队列的基本操作应⽤实验过程:1、先建⽴⼀个舞者队列,依次往队列中添加⼈员信息(8个⼈,5男3⼥);2、分别创建男⼥队列;3、从舞者队列中依次将队⾸元素出队并判断其性别并添加⾄男队(5⼈)或⼥队(3⼈);4、分别从男队和⼥队出队队⾸元素并配对输出;(男队⼥队分别3⼈)5、将未完成的⼀队队⾸元素输出(男队的队⾸成员名称)。
实验报告中给出算法3.23的代码实验结果:输⼊:8⼈信息(A,B,C,D,E,F,G,H)输出:The dancepartners:A---BC---DE---FG is waiting for a partner.实验分析:1.队列的操作特点;2.列举调试运⾏过程中出现的错误并分析原因。
要求:(1) 程序要添加适当的注释,程序的书写要采⽤缩进格式。
(2) 程序要具在⼀定的健壮性,即当输⼊数据⾮法时,程序也能适当地做出反应。
(3) 程序要做到界⾯友好,在程序运⾏时⽤户可以根据相应的提⽰信息进⾏操作。
(4) 上传源程序到课堂派。
顺序表的源程序保存为dancepartner.cpp。
程序代码:#include<stdio.h>#define MAXQSIZE 100#define QueueSize 20#define OK 1#define ERROR 0#define OVERFLOW 0#include <cstdlib>#include<iostream>using namespace std;typedef char QElemType;typedef int Status;//typedef char SElemType;typedef struct{char name[QueueSize];char sex;}person;typedef struct{person *dancer;person *base; //存储空间的基地址int front; //头指针int rear; //尾指针}SqQueue;Status InitQueue(SqQueue &Q){//构造⼀个空队列QQ.base=new person[MAXQSIZE]; //为队列分配⼀个最⼤容量为MAXQSIZE的数组空间if(!Q.base) exit(OVERFLOW); //存储分配失败Q.front=Q.rear=0; //头指针和尾指针为零,队列为空return OK;}Status EnQueue(SqQueue &Q,person e){//插⼊元素e为Q的新的队尾元素if((Q.rear+1)%MAXQSIZE==Q.front) //尾指针在循环意义上加1后等于头指针,表明队满return ERROR;Q.base[Q.rear]=e; //新元素插⼊队尾Q.rear=(Q.rear+1)%MAXQSIZE; //队尾指针加1return OK;}int QueueEmpty(SqQueue &Q){if (Q.front==Q.rear) return OK;else return ERROR;}Status DeQueue(SqQueue &Q,person &e){//删除Q的队头元素,⽤e返回其值if(Q.front==Q.rear) return ERROR; //队空e=Q.base[Q.front]; //保存队头元素Q.front=(Q.front+1)%MAXQSIZE; //队头指针加1return OK;}person GetHead(SqQueue Q){//返回Q的队列元素,不修改队头指针if(Q.front!=Q.rear) //队列⾮空return Q.base[Q.front]; //返回队头元素的值,队头指针不变}void DancePartner(person dancer[],int num){//结构数组dancer中存放跳舞的男⼥,num是跳舞的⼈数person p;int i;SqQueue Mdancers,Fdancers;InitQueue(Mdancers); //男⼠队列初始化InitQueue(Fdancers); //⼥⼠队列初始化for (i=0;i<num;i++) //根据性别依次将跳舞的⼈插⼊相应队列{p=dancer[i];if (p.sex=='F') EnQueue(Fdancers,p); //插⼊男队else EnQueue(Mdancers,p); //插⼊⼥队}cout<<"The dancing partner are:\n";while(!QueueEmpty(Fdancers)&&!QueueEmpty(Mdancers)){//依次输出男⼥舞伴的姓名DeQueue(Fdancers,p); //⼥⼠出队cout<<<<""; //输出出队⼥⼠姓名DeQueue(Mdancers,p); //男⼠出队cout<<<<endl; //输出出队男⼠姓名}if (!QueueEmpty(Fdancers)) //⼥⼠队⾮空,输出队头⼥⼠的姓名{p=GetHead(Fdancers); // 取⼥队的头cout<<<<" is waiting for a partner."<<endl;}else if (!QueueEmpty(Mdancers)) //男⼠队⾮空,输出男⼠队头的姓名 {p=GetHead(Mdancers); // 取男队的头cout<<<<" is waiting for a partner."<<endl;}}int main(){int i,j;person dancer[QueueSize];cout<<"请输⼊跳舞的⼈数:";cin>>j;while(j<=0){cout<<"输⼊错误,请重新输⼊跳舞的⼈数:";cin>>j;}for(i=1;i<=j;i++){cout<<"请输⼊第"<<i<<"舞者的名字:"<<endl;cin>>dancer[i-1].name;cout<<"请输⼊第"<<i<<"个⼈的性别(F/M):"<<endl;cin>>dancer[i-1].sex;while(dancer[i-1].sex!='F'&&dancer[i-1].sex!='M'){cout<<"*******输⼊错误,请重新输⼊:\n";cout<<dancer[i-1].sex;cout<<"请输⼊第"<<i<<"个⼈的性别(F/M):"<<endl;cin>>dancer[i-1].sex;break;}}DancePartner(dancer,j);}。
数据结构14:队列(Queue),“先进先出”的数据结构队列是线性表的⼀种,在操作数据元素时,和栈⼀样,有⾃⼰的规则:使⽤队列存取数据元素时,数据元素只能从表的⼀端进⼊队列,另⼀端出队列,如图1。
图1 队列⽰意图称进⼊队列的⼀端为“队尾”;出队列的⼀端为“队头”。
数据元素全部由队尾陆续进队列,由队头陆续出队列。
队列的先进先出原则队列从⼀端存⼊数据,另⼀端调取数据的原则称为“先进先出”原则。
(first in first out,简称“FIFO”)图1中,根据队列的先进先出原则,(a1,a2,a3,…,a n)中,由于 a1 最先从队尾进⼊队列,所以可以最先从队头出队列,对于 a2来说,只有a1出队之后,a2才能出队。
类似于⽇常⽣活中排队买票,先排队(⼊队列),等⾃⼰前⾯的⼈逐个买完票,逐个出队列之后,才轮到你买票。
买完之后,你也出队列。
先进⼊队列的⼈先买票并先出队列(不存在插队)。
队列的实现⽅式队列的实现同样有两种⽅式:顺序存储和链式存储。
两者的区别同样在于数据元素在物理存储结构上的不同。
队列的顺序表⽰和实现使⽤顺序存储结构表⽰队列时,⾸先申请⾜够⼤的内存空间建⽴⼀个数组,除此之外,为了满⾜队列从队尾存⼊数据元素,从队头删除数据元素,还需要定义两个指针分别作为头指针和尾指针。
当有数据元素进⼊队列时,将数据元素存放到队尾指针指向的位置,然后队尾指针增加 1;当删除对头元素(即使想删除的是队列中的元素,也必须从队头开始⼀个个的删除)时,只需要移动头指针的位置就可以了。
顺序表⽰是在数组中操作数据元素,由于数组本⾝有下标,所以队列的头指针和尾指针可以⽤数组下标来代替,既实现了⽬的,⼜简化了程序。
例如,将队列(1,2,3,4)依次⼊队,然后依次出队并输出。
代码实现:#include <stdio.h>int enQueue(int *a, int rear, int data){a[rear] = data;rear++;return rear;}void deQueue(int *a, int front, int rear){//如果 front==rear,表⽰队列为空while (front != rear) {printf("%d", a[front]);front++;}}int main(){int a[100];int front, rear;//设置队头指针和队尾指针,当队列中没有元素时,队头和队尾指向同⼀块地址front = rear = 0;rear = enQueue(a, rear, 1);rear = enQueue(a, rear, 2);rear = enQueue(a, rear, 3);rear = enQueue(a, rear, 4);//出队deQueue(a, front, rear);return0;}顺序存储存在的问题当使⽤线性表的顺序表⽰实现队列时,由于按照先进先出的原则,队列的队尾⼀直不断的添加数据元素,队头不断的删除数据元素。
附录实验报告参考规范《数据结构》实验报告院系____________________ 专业____________________姓名_林桢曦___________ 学号___106052010235_________ 电话______________________级__________班_______年____月____日1.实验题目队列的基本操作2.需求分析(1)编写链接队列的基本操作函数,调用上述函数实现下列操作,操作步骤如下:调用进队函数建立一个队列。
读取队列中的第一个元素。
从队列中删除元素。
输出队列中的所有元素。
(2)编写环型队列的基本操作函数。
调用上述函数实现下列操作,操作步骤如下:调用进队函数建立一个队列。
读取队列中的第一个元素。
从队列中删除元素。
输出队列中的所有元素。
链接队列:①进队操作EnQueue(LinkQueue *Q, QElemType e)②出队操作,队空DeQueue(LinkQueue *Q, QElemType *e)③输出队列中元素0utputQueue(LinkQueue Q)环型队列:①进队操作,返回1为队满EnQueue(SqQueue *Q, QElemType e)②出队操作,返回1为队空DeQueue(SqQueue *Q, QElemType *e)③输出队列中元素outPutQMeue(SqQueue Q)输入形式:整型数。
3.概要设计(1)ADT QNode{数据对象:D={a i|a i∈Integ erSet,i=0,1,2,…,n,n≥0}结构关系:R={<a i,a i+1>|a i,a i+1 ∈D}基本操作:InitQueue(LinkQueue *Q)操作前提:Q是一个未初始化的链接队列操作结果:将Q初始化为一个空的链接队列EnQueue(LinkQueue *Q, QElemType e)操作前提:链接队列Q已存在操作结果:将元素e插入到链接队列中DeQueue(LinkQueue *Q, QElemType *e)操作前提:链接队列Q已存在操作结果:将链接队列Q中队头元素删除,删除的元素值通过e返回0utputQueue(LinkQueue Q)福建师范大学物光院计算机教学辅导讲义操作结果:将链接队列Q中的元素显示到屏幕上}ADT SqQueue{数据对象:D={a i|a i∈Integ erSet,i=0,1,2,…,n,n≥0}结构关系:R={<a i,a i+1>|a i,a i+1 ∈D}基本操作:InitQueue(SqQueue &Q)操作前提:Q是一个未初始化的环型队列操作结果:将Q初始化为一个空的环型队列EnQueue(SqQueue *Q,int e)操作前提:环型队列Q已存在操作结果:将元素e插入到队列中DeQueue(SqQueue *Q,int *e)操作前提:环型队列Q已存在操作结果:将环型队列Q中队头元素删除,删除的元素值通过e返回outPutQMeue(SqQueue *Q)操作前提:环型队列Q已存在操作结果:将环型队列Q中的元素显示到屏幕上}(2)链接队列:本程序包含5个函数:•主函数main()•初始化链接队列函数InitQueue()•进队函数EnQueue()•出队函数DeQueue()•输出队列中元素函数OutputStack()各函数调用关系:主函数main调用其他四个函数环型队列:本程序包含5个函数:•主函数main()•初始化链接队列函数InitQueue()•进队函数EnQueue()•出队函数DeQueue()•输出队列中元素函数OutputStack()各函数调用关系:主函数main调用其他四个函数(3)链接队列:主函数的伪码main()福建师范大学物光院计算机教学辅导讲义{定义变量i,n,m;定义一个LinkQueue 变量Lq初始化Lq;输入队列元素的个数;For循环(i=1;i<=n;i++){调用EnQueue函数;}输出队列中元素;调用DeQueue函数;显示删除的队头元素;显示Lq;}环型队列:主函数的伪码main(){定义SqQueue 变量sq;定义整型变量n,i,m;构造空的环型队列;输入队列的长度;For循环(i=1;i<=n;i++){调用EnQueue函数;}输出队列元素;删除对头元素;输出队列元素;}4.详细设计链接队列:(1)类型定义typedef struct QNode{int data;struct QNode *next;}QNode,*QueuePtr;typedef struct {QueuePtr front;QueuePtr rear;}LinkQueue;基本操作的伪码算法(1)初始化void InitQueue(LinkQueue *Q){Q->front=Q->rear==申请新结点;Q->front->next=NULL;}(2)进队void Push(SqStack &S,int e){定义QueuePtr变量p;p=申请新的空间;如果申请失败,结束程序p->data=e;p->next=NULL;如果是第一个元素则{Q->front->next=p;}Q->rear->next=p;Q->rear=p;}(3)出队int Pop(SqStack *S,int e){定义QueuePtr变量p;如果队空则返回0;p=Q->front->next;*e=p->data;Q->front->next=p->next;如果Q->rear==p则Q->rear=Q->front;;释放p的空间;返回1;}(4)输出元素int OutputQueue(LinkQueue Q){定义QueuePtr变量p;如果队空则返回0;p=Q.front->next;while(p){printf("%d ",p->data);p=p->next;}printf("\n");返回1;}环型队列:类型定义typedef struct{int *base;int front;int rear;}SqQueue;基本操作的伪码算法(1)初始化void InitQueue(SqQueue &Q){Q.base=申请新的空间;如果申请失败,结束程序;Q.front=Q.rear=0;}(2)进队int EnQueue(SqQueue *Q,int e){ 如果队满了则返回1;Q->base[Q->rear]=e;Q->rear=(Q->rear+1)%MAXQSIZE;返回0;}(3)出队int DeQueue(SqQueue *Q,int *e)DeQueue(SqQueue *Q,int *e) {如果队空则返回1;*e=Q->base[Q->front];Q->front=(Q->front+1)%MAXQSIZE;返回0;}(4)输出元素void outPutQMeue(SqQueue *Q){定义整型变量i;For循环(i=Q->front;i<Q->rear;i++){输出Q->base[i];}换行;}5.调试分析链接队列:调试是出现错误,经过检查发现在某些地方分号用中文表示,出现空指针问题。
环型队列:出现空指针问题,内存不能读取等6.使用说明(1)链接队列:程序名为test4.exe,程序执行过程如下:提示用户输入元素个数;用户按要求输入一个整型数;程序输出构造好的链接队列;调用出队函数,并把剩余元素显示在屏幕上;(2)环型队列:程序名为test4-2.exe,程序执行过程如下:提示用户输入队列元素个数;用户按要求输入一个整型数;程序用输入的整型数构建一个环型队列,并输出队列元素;调用出栈函数,删除栈顶,显示栈中元素;7.测试结果链接队列:构造一个空的链接队列后,屏幕显示:请输入队列的元素个数:输入5后,屏幕显示建立的队列元素:1 2 3 4 5调用出队函数后,屏幕显示:2 3 4 5环型队列:建立空队列,程序运行后屏幕显示:输入队列元素的长度输入5后,屏幕显示队列的元素:1 2 3 4 5接着屏幕又显示:队列中的第一个元素为:1调用出队函数,然后输入队列中元素:2 3 4 58. 参考文献数据结构(c语言版)9.附录源程序文件如下:链接队列:#include<stdlib.h>#include<stdio.h>typedef struct QNode{int data;struct QNode *next;}QNode,*QueuePtr;typedef struct {QueuePtr front;QueuePtr rear;}LinkQueue;void InitQueue(LinkQueue *Q){Q->front=Q->rear=(QNode *)malloc(sizeof(QNode));Q->front->next=NULL;}void EnQueue(LinkQueue *Q,int e){QueuePtr p;福建师范大学物光院计算机教学辅导讲义p=(QueuePtr)malloc(sizeof(QNode));if(!p)exit(1);p->data=e;p->next=NULL;if(Q->front->next==NULL){Q->front->next=p;}Q->rear->next=p;Q->rear=p;}int DeQueue(LinkQueue *Q,int *e){QueuePtr p;if(Q->front==Q->rear)return 0;p=Q->front->next;*e=p->data;Q->front->next=p->next;if(Q->rear==p){Q->rear=Q->front;}free(p);return 1;}int OutputQueue(LinkQueue Q){QueuePtr p;if(Q.front==Q.rear)return 0;p=Q.front->next;while(p){printf("%d ",p->data);p=p->next;}printf("\n");return 1;}void main(){ int i,n;int m;LinkQueue Lq;printf("构造一个空的链接队列");InitQueue(&Lq);printf("\n请输入队列的元素个数:");scanf("%d",&n);for(i=1;i<=n;i++){EnQueue(&Lq,i);}printf("队列中的元素为:");OutputQueue(Lq);DeQueue(&Lq,&m);printf("删除队列中的第一个元素\n此时队列中的元素为:");OutputQueue(Lq);}环型队列:#include<stdio.h>#include<stdlib.h>#define MAXQSIZE 100typedef struct{int *base;int front;int rear;}SqQueue;void InitQueue(SqQueue &Q){Q.base=(int *)malloc(MAXQSIZE*sizeof(int));if(!Q.base)exit(1);Q.front=Q.rear=0;}int EnQueue(SqQueue *Q,int e){if((Q->rear+1)%MAXQSIZE==Q->front)return 1;Q->base[Q->rear]=e;Q->rear=(Q->rear+1)%MAXQSIZE;return 0;}int DeQueue(SqQueue *Q,int *e){if(Q->front==Q->rear)return 1;*e=Q->base[Q->front];Q->front=(Q->front+1)%MAXQSIZE;return 0;}void outPutQMeue(SqQueue *Q){int i;for(i=Q->front;i<Q->rear;i++){printf("%d ",Q->base[i]);}printf("\n");}void main(){SqQueue sq;int n,i,m;printf("构造空的环型队列\n");InitQueue(sq);printf("请输入队列的长度:");scanf("%d",&n);for(i=1;i<=n;i++){EnQueue(&sq,i);}printf("队列的元素为:");outPutQMeue(&sq);DeQueue(&sq,&m);printf("队列中的第一个元素为:%d",m);printf("\n删除对头元素,输出队列元素:");outPutQMeue(&sq);}注意事项:●每位同学必须完成实验任务,并提交实验报告。