数据结构实验4循环队列的实现和运算

1、 实验目的
(1) 掌握队列“先进先出”的特点;
(2) 复习队列的入队、出对、插入、删除等基本操作;
(3) 掌握循环队列的特点,以及循环队列的应用。

2、 实验内容
(1) 在顺序存储结构上实现输出受限制的双端循环队列的入队和出队(只允许队头输出)算法;
(2) 设每个元素表示一个待处理的作业,元素值表示作业的预计时间。入队列采取简化的短作业
优先原则,若一个新提交的作业的预计执行时间小于队头和队尾作业的平均时间,则插入在对头,
否则插入在队尾;
(3) 循环队列数据类型:
#define MAXLEN 10
typedef struct
{ int data[MAXLEN];
Int front ,rear;
}csequeue;
(4) 入队作业处理的预计时间可以用随机函数rand()产生,也可以从键盘输入。

3、 实验要求
(1) 用C(C++)语言完成算法设计和程序设计。
(2) 上机调试通过实验程序。
(3) 输入数据,检验程序运行结果。
(4) 给出具体的算法分析,包括时间复杂度和空间复杂度等。
(5) 撰写实验报告(把输入实验数据及运行结果用抓图的形式粘贴到实验报告上)。

4、 实验步骤与源程序
⑴ 实验步骤
先从具体的问题中抽象出适当的数学模型,然后设计出相应的算法,其中,需要设计一个主函
数来实现菜单的输出,设计另外五个函数来求分别实现初始化队列,入队,出队,显示,求队列长
度,最后,串接函数,并调试程序,在调试的时候,我先进行入队操作,输入9个数据之后,程序
显示队满,不能入队,然后开始出队操作,输出9个数字之后,程序显示队空,再进行入队,显示
队中的各个元素,并求队长,多次调试后,发现没有问题,得出实验结果,并截图。

⑵ 源代码
#include<>
#define MAXLEN 10
typedef struct
{ int data[MAXLEN]; // 定义数据的类型
int front,rear; // 定义队头、队尾指针
}csequeue;
csequeue q;
void IniQueue() // 初始化队列
{ ==MAXLEN-1;
}
void InQueue() // 入队函数
{ int x ;
printf("\n\t\t 输入一个入队的整数数据:");
scanf("%d",&x);
if ==+1) % MAXLEN )
{ printf("\n\t\t 队满,不能入队! \n"); return; }
=+1) % MAXLEN;
[]=x;
printf("\n\t\t 入队成功! \n");
}
void Outsequeue() // 出队函数
{ if ==
{ printf ("\n\t\t 此队列为空! "); return ;} // 队空不能出队
else
{ =+1) % MAXLEN;
printf("\n\t\t 出队元素为:%d\n",[]); // 输出队头元素
return;
}
}
void ShowQueue() // 显示函数
{ int k=;
if (k==
{ printf("\n\t\t 此队列为空! \n"); return;}
printf("\n\t\t 此队列元素为:");
do
{ k=(k+1)%MAXLEN;
printf("%4d",[k]);
} while(k!=;
printf("\n");
}
int length()
{ int k;
k= MAXLEN;
return k;
}
void main() // 主函数
{ int i=1;
int choice;
IniQueue();
while (i)
{
printf("\n\t\t 循 环 队 列\n");
printf("\n\t\t***********************************************");
printf("\n\t\t* 进 队 *");
printf("\n\t\t* 2----------出 队 *");
printf("\n\t\t* 3----------显 示 *");
printf("\n\t\t* 4----------求 队 列 长 度 *");
printf("\n\t\t* 0----------返 回 *");
printf("\n\t\t***********************************************");
printf("\n\n\t\t 请选择菜单号: ");
scanf("%d",&choice);
switch(choice)
{ case 1: InQueue(); break;
case 2: Outsequeue(); break;
case 3: ShowQueue(); break;
case 4: printf("\n\t\t 队列长度为: %d \n",length());break;
case 0: i=0; break;
}
}
}
5、 测试数据与实验结果(可以抓图粘贴)
(1)菜单显示:

(2)入队:
(3)队满(已入队9个元素):
(4)出队:
(5)队空(已出队9个元素):
(6)显示队中的元素:
(7)求队长:
6、 结果分析与实验体会
本次实验是参考了范例程序,经过自己的改写,从而实现要求。先做简单的输出,一步步的再
做其它格式的设置。在实验的过程中,我加深了对队列各种操作的理解,因为队列是“先进先出”
的操作受限制的线性表,一般队列只允许在队尾进行插入操作,在队头进行删除操作,元素之间存
在一对一的关系,本程序的设计过程也是对前面线性表知识的巩固。再者,用链式存储结构实现这
个程序,实际上是设计一个带有头指针(front)和尾指针(rear)的单向链表,此单向链表没有头
结点,头尾指针指的是同一个单向链表中的首尾结点,所以,从链队列的整体结构考虑,一般讲这
两个指针封装在一个结构体中。队列是一种应用广泛的数据结构,凡具有其特点的需要排队处理的
问题,都可以使用它来处理。

合集下载

ds试验项目

ds试验项目

实验一熟悉数据结构上机环境1 实验目的1)熟悉Turbo C 2.0 上机环境2)掌握C语言与伪码之间的关系,能够很好把伪码转换为C语言程序2 实验内容1)熟悉C语言开发环境2)编写运用C语言程序3实验结果4实验分析实验二顺序表的实现1 实验目的掌握线性表的基本操作,插入、删除、查找,以及线性表合并等运算在顺序存储结构上的运算。

2 实验内容编写程序实现线性表的顺序存储表示的各种基本操作,如插入、删除、查找等。

3实验结果4实验分析实验三单链表的实现1 实验目的掌握线性表的基本操作,插入、删除、查找,以及线性表合并等运算在链接存储结构上的运算。

2 实验内容编写程序实现线性表的链接存储表示的各种基本操作,如插入、删除、查找等。

3实验结果4实验分析实验四顺序栈的实现1 实验目的1)掌握栈的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。

2)掌握栈的特点,即先进后出。

3)掌握栈的基本运算,如入栈与出栈等运算在顺序存储结构上的实现。

2 实验内容编写程序实现栈的顺序存储结构的实现。

3实验结果4实验分析实验五顺序队列的实现(1)1 实验目的1)掌握队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。

2)掌握队列的特点,即先进先出。

3)掌握队列的基本运算,如入队与出队等运算在顺序存储结构的实现。

2 实验内容编写程序实现队列在顺序存储结构中的实现及循环队列的应用。

3实验结果4实验分析实验六顺序队列的实现(2)-----约瑟夫环问题的实现1 实验目的1)掌握队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。

2)掌握队列的特点,即先进先出。

3)掌握队列的基本运算,如入队与出队等运算在顺序存储结构的实现。

2 实验内容编写程序实现队列在顺序存储结构中的实现及循环队列的应用。

3实验结果4实验分析实验七稀疏矩阵转置算法的实现1 实验目的1)掌握稀疏矩阵的两种压缩方法的特点和适用范围,领会稀疏矩阵运算采用的处理方法。

电大数据结构(本)形成性考核册(作业1-4)

电大数据结构(本)形成性考核册(作业1-4)

数据结构(本)形成性考核作业册使用说明本作业册是中央广播电视大学计算机科与技术专业(本科)数据结构(本)课程形成性考核的依据,与《数据结构(本科)》教材(李伟生主编,中央电大出版社出版)配套使用。

数据结构(本)课程是中央广播电视大学计算机科学技术专业的一门统设必修、学位课程,4学分,共72学时。

其中实验24学时,开设一学期。

本课程的特点是综合性、实践性强,内容抽象,在专业中具有承上启下的作用。

因此,在学习本课程时,要注意理论联系实际,结合教学内容进行上机实践,认真完成作业和实验内容。

本课程的总成绩按百分制记分,其中形成性考核所占的比例为30%,终结性考试占70%(闭卷,答题时限为90分钟)。

课程总成绩达到60分及以上者为合格,可以获得该课程的学分。

本课程的学位课程学分为70分,即课程总成绩达到70分及以上者有资格申请专业学位。

本课程共设计了4次形考作业,每次形考作业均包括实验内容,由各地电大根据学生对作业中各种题型练习和实验的完成情况进行考核。

对于实验内容要求按实验要求认真完成,并提交实验报告。

数据结构(本)课程作业作业1(本部分作业覆盖教材第1-2章的内容)一、单项选择题1.在数据结构中,从逻辑上可以把数据结构分为()。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部机构2.下列说法中,不正确的是()。

A.数据元素是数据的基本单位B.数据项是数据中不可分割的最小可标识单位C.数据可有若干个数据元素构成D.数据项可由若干个数据元素构成3.一个存储结点存储一个()。

A.数据项B.数据元素C.数据结构D.数据类型4.数据结构中,与所使用的计算机无关的是数据的()。

A.存储结构B.物理结构C.逻辑结构D.物理和存储结构5.下列的叙述中,不属于算法特性的是()。

A.有穷性B.输入性C.可行性D.可读性6.算法分析的目的是()。

A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性7.数据结构是一门研究计算机中()对象及其关系的科学。

数据结构实验指导书(王曙燕)

数据结构实验指导书(王曙燕)

数据结构实验指导书(计算机科学与技术专业)淮南师范学院计算机与信息工程系2015.9前言数据结构是软件开发的基础,数据结构课程是软件工程、计算机科学与技术、网络工程、信息安全、物联网工程等专业的必修技术基础课程。

该课程是在学生学习高级语言程序设计课程基础上,使学生掌握各种常用数据结构的逻辑表示、存储表示、处理方法及应用算法设计,学会常用数据分类和数据查找的技术,对所设计的算法会做定量或定性的分析比较,培养学生的算法设计与分析的能力。

通过该课程的学习,使学生学会分析数据对象特性,选择合适的数据结构、存贮结构及相应的基本处理算法;初步掌握算法的时间空间复杂度分析技巧。

既为学生学习后继课程打好基础,也为将来软件开发提供理论指导。

数据结构具有很强的实践性,只有通过编程上机实验,才能真正领会数据结构的真正内涵,并灵活运用数据结构的基本知识提高自己的软件开发能力。

《数据结构》实验项目一览表课程名称:数据结构学时:16 适应专业:计算机科学与技术实验1:顺序表及其应用1.实验目的:(1)熟练掌握VC或Dev C++集成环境和程序开发步骤;(2)熟练掌握顺序表的插入、删除、查找定位等基本算法;(3)能利用顺序表解决简单的问题。

2.实验原理:线性表是最基本最常用的一种线性结构。

其特点是除了第一个元素和最后一个元素以外,其他数据元素都只有一个前驱和一个后继。

一个线性表中的数据元素应具有相同的描述性质,即属于同一个数据对象。

在实际应用中,必须将线性表中的数据存放在计算机中。

常用的存储方式有两种:顺序存储和链式存储,线性表的顺序存储是指在内存中用地址连续的一块存储空间顺序存放线性表的各个元素,使得数据元素逻辑上的相邻关系与物理上的相邻关系一致。

顺序存储的线性表又称顺序表,可以随机地存取表中的任意一个元素;也无需为表示结点之间的逻辑关系而额外增加存储空间。

但是,顺序表在进行插入和删除操作时需要移动大量的元素,影响运行的效率;同时表的最大容量事先无法估计,如果对表长估计的过长,可能会浪费空间,相反则可能会发生溢出的现象。

c语言队列数据结构

c语言队列数据结构

c语言队列数据结构队列是一种常见的数据结构,它遵循先进先出(FIFO)的原则。

在C语言中,我们可以使用数组或链表来实现队列数据结构。

本文将介绍C语言中队列的实现方法及其应用。

一、数组实现队列数组是一种简单且常用的数据结构,可以用来实现队列。

在C语言中,我们可以使用数组来创建一个固定大小的队列。

下面是一个使用数组实现队列的示例代码:```c#include <stdio.h>#define MAX_SIZE 100int queue[MAX_SIZE];int front = -1;int rear = -1;void enqueue(int data) {if (rear == MAX_SIZE - 1) {printf("队列已满,无法插入元素。

\n");return;}if (front == -1) {front = 0;}rear++;queue[rear] = data;}void dequeue() {if (front == -1 || front > rear) {printf("队列为空,无法删除元素。

\n"); return;}front++;}int getFront() {if (front == -1 || front > rear) {printf("队列为空。

\n");return -1;}return queue[front];}int isEmpty() {if (front == -1 || front > rear) {return 1;}return 0;}int main() {enqueue(1);enqueue(2);enqueue(3);printf("队列的第一个元素:%d\n", getFront());dequeue();printf("队列的第一个元素:%d\n", getFront());return 0;}```在上述代码中,我们使用了一个数组`queue`来存储队列的元素。

数据结构-第3章-队列

数据结构-第3章-队列
下标 队头 0 1 2 3 4 5 队尾 6 7 8 9
a
front
b
c
d
e
f
g
rear
3.2 队列的顺序存储及实现
在使用队列前,先初始化队列,此时,队列为空,队头指针 front和 队尾指针rear都指向队列的第一个位置,即front=rear=0,如图3.3 所示。
下标 0 1 2 3 4 5 6Байду номын сангаас7 8 9
3.3 队列的链式存储及实现
(2)判断队列是否为空。 int QueueEmpty(LinkQueue *Q) {
return Q->rear==Q->front;
}
//头尾指针相等队列为空
3.3 队列的链式存储及实现
(3)将元素x入队。先为新结点申请一个空间,然后将x赋给数据 域,并使原队尾元素结点的指针域指向新结点,队尾指针指向新结点, 从而将结点加入队列中。操作过程如图3.20所示。
3.2 队列的顺序存储及实现
(4)入队
int EnQueue(CirQueue *Q , DataType x)
{ if(QueueFull(Q)) printf(“Queue overflow”); else{ Q->data[Q->rear]=x; Q->rear=(Q->rear+1)%QueueSize; } }
3.3 队列的链式存储及实现
链式队列的类型描述如下:
/*结点类型定义*/
typedef struct QNode { DataType data; struct QNode * next; } QueueNode; /*队列类型定义*/ typedef struct { QueueNode * front; //队头指针

算法与及数据结构实验报告

算法与及数据结构实验报告

算法与及数据结构实验报告算法与数据结构实验报告一、实验目的本次算法与数据结构实验的主要目的是通过实际操作和编程实现,深入理解和掌握常见算法和数据结构的基本原理、特性和应用,提高我们解决实际问题的能力和编程技巧。

二、实验环境本次实验使用的编程语言为 Python,开发环境为 PyCharm。

同时,为了进行算法性能的分析和比较,使用了 Python 的 time 模块来计算程序的运行时间。

三、实验内容1、线性表的实现与操作顺序表的实现:使用数组来实现顺序表,并实现了插入、删除、查找等基本操作。

链表的实现:通过创建节点类来实现链表,包括单向链表和双向链表,并完成了相应的操作。

2、栈和队列的应用栈的实现与应用:用数组或链表实现栈结构,解决了表达式求值、括号匹配等问题。

队列的实现与应用:实现了顺序队列和循环队列,用于模拟排队系统等场景。

3、树结构的探索二叉树的创建与遍历:实现了二叉树的先序、中序和后序遍历算法,并对其时间复杂度进行了分析。

二叉搜索树的操作:构建二叉搜索树,实现了插入、删除、查找等操作。

4、图的表示与遍历邻接矩阵和邻接表表示图:分别用邻接矩阵和邻接表来存储图的结构,并对两种表示方法的优缺点进行了比较。

图的深度优先遍历和广度优先遍历:实现了两种遍历算法,并应用于解决路径查找等问题。

5、排序算法的比较插入排序、冒泡排序、选择排序:实现了这三种简单排序算法,并对不同规模的数据进行排序,比较它们的性能。

快速排序、归并排序:深入理解并实现了这两种高效的排序算法,通过实验分析其在不同情况下的表现。

6、查找算法的实践顺序查找、二分查找:实现了这两种基本的查找算法,并比较它们在有序和无序数据中的查找效率。

四、实验步骤及结果分析1、线性表的实现与操作顺序表:在实现顺序表的插入操作时,如果插入位置在表的末尾或中间,需要移动后续元素以腾出空间。

删除操作同理,需要移动被删除元素后面的元素。

在查找操作中,通过遍历数组即可完成。

头歌循环队列的基本操作

头歌循环队列的基本操作头歌循环队列是一种基于数组实现的队列数据结构,它可以实现基本的入队、出队、判空、判满等操作。

下面是对头歌循环队列的基本操作进行详细介绍。

1. 初始化操作头歌循环队列需要初始化队列的容量和头尾指针,一般将队列的容量设置为数组的长度减1,头尾指针初始化为0。

2. 入队操作头歌循环队列的入队操作是将元素插入到队尾的操作。

首先需要判断队列是否已满,即判断队列的头指针和尾指针相遇的位置是否为数组的首位置。

如果队列已满,则插入失败,否则将元素插入到队尾,并更新尾指针。

3. 出队操作头歌循环队列的出队操作是将队头元素删除的操作。

首先需要判断队列是否为空,即判断头指针和尾指针是否相等。

如果队列为空,则删除失败,否则将队头元素删除,并更新头指针。

4. 判空操作头歌循环队列的判空操作即判断队列是否为空。

当头指针和尾指针相等时,队列为空,返回true;否则,队列不为空,返回false。

5. 判满操作头歌循环队列的判满操作即判断队列是否已满。

当尾指针的下一个位置(即尾指针+1)与头指针相遇时,队列已满,返回true;否则,队列未满,返回false。

6. 获取队头元素操作头歌循环队列可以通过头指针获取队头元素,即数组中头指针的位置的元素。

7. 获取队尾元素操作头歌循环队列可以通过尾指针获取队尾元素,即数组中尾指针的位置的元素。

8. 获取队列长度操作头歌循环队列的长度可以通过尾指针和头指针之间的距离计算得出,即`(尾指针 - 头指针 + 队列长度) % 队列长度`。

9. 扩容操作当头歌循环队列的容量不足以插入更多的元素时,可以进行扩容操作。

扩容操作需要重新创建一个更大容量的数组,并将原有的数据复制到新数组中,然后更新队列的容量、头指针和尾指针。

以上就是头歌循环队列的基本操作。

通过这些操作,我们可以实现对队列的基本操作,使其具备按照先进先出的原则存储和访问数据的功能。

头歌循环队列的实现原理相对简单,但是需要特别注意指针的更新和边界条件的处理,以确保队列的正确性和效率。

循环队列数据结构在微控制器系统中的设计与实现


如 变 压器 、电动 机 等 。这 些 设 备 不 仅要 从 电力 系统 吸 收 有功 功 率 ,还要 吸收 无功 功 率 以 产生 这 些 设 备 正 常 工 作所 必 需的 磁场 。若 在 电网 中安 装并 联 电容 器 等 容 性设 备 后 ,可 以 供 给 感 性 电抗 消 耗 的 部 分 无 功 功 率 , 减 小 电网 向感性 负荷提 供 的 、由输 电线 路 输送 的 无功
p ct  ̄ u e r q e t n t es s lo u e .a d t e l e p n o a a io si q a e p r x ma ey ai o s d fe u n l a d o h r ed m s d y n h i s a fc p ct r se u td a p o i t l . f
果 是 在 队 列满 的情 况 下进 行 切 除 ,需 对 溢 出标 记 和 尾 指 针 进 行处 理 。 当头 指 针增 加 到 超过 队 列 长度 后 , 也 要 将 它调 整 为初值 零 。
器 的 实 时投 入和 切 除 ,来 提高 和 稳 定功 率 因 数 , 补偿 2 循 环队 列的存储 结构 电网 的无 功 损耗 ,达 到 改 善 电 网质 量 和 节 约 电能 的 目 队 列是 一种 先 进先 出的 线性 表 。 新 的 元 素 必 须 从 的。 无功 补偿 控 制 器应 具 备 的基 本 特性 之 一就 是 对 补 队尾 加入 , 要取 出的 元 素必 须从 排 头 取 出, 它 是 队 列 偿 电 容器 实行 “ 投先 切 ,后 投 后 切” 的 等容 量 分 组 最 先进 入 的 元 素 。每 个 队列 需设 立 两 个 指 针 , 分 别 指 先 控制 。 “ 投 先 切 ,后 投 后 切 ” 可 使 各 组 电 容 器 投 入 示 队 头和 队尾 的位 置 。 指 针 R ( e r one) 指 出 先 P R a itr P 运行 的时 间大 致 相等 , 寿命 差 别 不 大 。这 样 , 就 不 会 造 成某 些 电容频 繁使 用 而其 它 电容 使用 次 数 较 少 的 不 正常 现 象 。而 采用 等 容量 分 组 的方 法 与 采 用 不 等 容 量 分 组 的方 法 相 比较 , 可 减 少 补 偿 电 容 器 的投 切 次 数 。 我们 在 以 AT 9 5 8 C 2微 控 制 器 为 核 心 的 智 能 无 功 补 偿

数据结构专项精讲课程讲义-第三部分-第4章 队列

一 选择题1. 假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为( A )。

A.(rear-front+m)%m B.rear-front+1 C.(front-rear+m)%m D.(rear-front)%m 2. 循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素是( A )。

A. (rear-front+m)%mB. rear-front+1C. rear-front-1D. rear-front3. 循环队列存储在数组A[0..m]中,则入队时的操作为(D )。

A. rear=rear+1B. rear=(rear+1) mod (m-1)C. rear=(rear+1) mod mD. rear=(rear+1)mod(m+1)4. 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?( B )A. 1和 5B. 2和4C. 4和2D. 5和15. 用单链表表示的链式队列的队头在链表的( A )位置。

A.链头 B.链尾 C.链中二 判断题1. 队列是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。

( × )2. 通常使用队列来处理函数或过程的调用。

( × )3. 队列逻辑上是一个下端和上端既能增加又能减少的线性表。

( √ )4. 循环队列通常用指针来实现队列的头尾相接。

( × )5. 循环队列也存在空间溢出问题。

(√ )6. 队列和栈都是运算受限的线性表,只允许在表的两端进行运算。

(× )7. 栈和队列都是线性表,只是在插入和删除时受到了一些限制。

( √ )三 应用题1. 简要叙述循环队列的数据结构,并写出其初始状态、队列空、队列满时的队首指针与队尾指针的值。

队列

13
例1: 一循环队列如下图所示,若先删除4个元素,接着再 插入4个元素,请问队头和队尾指针分别指向哪个位置? front front 1
2
J2
J3 J4 J5
front
J8
J9
front
0
J1
3
front
J7 J6 J5
rear
rear 解:由图可知,队头和队尾指针的初态分别为front=0 和rear=5。maxsize=6 删除4个元素后front=4;再插入4个元素后,r=(5+4)%6=3
16
链队列示意图
rear Q front p
a1 (队首) a2
a3 ^
(队尾)
讨论:
① 空队列的特征? front=rear
front
rear
^
② 队列会满吗?一般不会,因为删除时有free动作。除非内存不足! ③ 怎样实现入队和出队操作? 入队(尾部插入):rear->next=S; rear=S; 出队(头部删除):front->next=p->next;
2
1. 定

只能在表的一端进行插入运算,在表的另 一端进行删除运算的线性表 (头删尾插)
与同线性表相同,仍为一对一关系。 顺序队或链队,以循环顺序队更常见。
2. 逻辑结构 3. 存储结构
4. 运算规则
只能在队首和队尾运算,且访问结点时依 照先进先出(FIFO)的原则。
5. 实现方式 关键是掌握入队和出队操作,具体实现依顺序
14
5
4
front
例2 :数组Q[n]用来表示一个循环队列,f 为当前队列头元
素的前一位置,r 为队尾元素的位置。假定队列中元素的个 数小于n,计算队列中元素的公式为: (A) r-f (B)(n+f-r)% n (C)n+r-f (D) (n+r-f)% n
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档