数据结构基础实验8
(完整word版)数据结构 第八章排序

第八章排序:习题习题一、选择题1.在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( )。
A.希尔排序B.冒泡排序C.插入排序D.选择排序2.设有1000个无序的记录,希望用最快的速度挑选出其中前10个最大的记录,最好选用( )排序法。
A.冒泡排序B.快速排序C.堆排序D.基数排序3.在待排序的记录序列基本有序的前提下,效率最高的排序方法是( )。
A.插入排序B.选择排序C.快速排序D.归并排序’4.不稳定的排序方法是指在排序中,关键字值相等的不同记录的前后相对位置( )。
A.保持不变B.保持相反C.不定D.无关5.内部排序是指在排序的整个过程中,全部数据都在计算机的( )中完成的排序。
A. 内存储器B.外存储器C.内存储器和外存储器D.寄存器6.用冒泡排序的方法对n个数据进行排序,第一趟共比较( )对记录。
A.1B.2C.n-lD.n7.直接插入排序的方法是从第( )个记录开始,插入前边适当位置的排序方法。
A.1B.2C.3D.n8.用堆排序的方法对n个数据进行排序,首先将n个记录分成( )组。
A.1B.2C.n-lD.n9.归并排序的方法对n个数据进行排序,首先将n个记录分成( )组,两两归并。
A.1B.2C.n-lD.n10.直接插入排序的方法要求被排序的数据( )存储。
A.必须是顺序B.必须是链表C.顺序或链表D.二叉树11.冒泡排序的方法要求被排序的数据( )存储。
A.必须是顺序B.必须是链表C.顺序或链表D.二叉树12.快速排序的方法要求被排序的数据( )存储。
A.必须是顺序B.必须是链表C.顺序或链表D.二叉树13.排序方法中,从未排序序列中依次取出记录与已排序序列(初始时为空)中的记录进行比较,将其放入已排序序列的正确位置上的方法,称为( )。
A.希尔排序B.冒泡排序C.插入排序D.选择排序14.每次把待排序的记录划分为左、右两个子序列,其中左序列中记录的关键字均小于等于基准记录的关键字,右序列中记录的关键字均大于基准记录的关键字,则此排序方法叫做( )。
计算机学科专业基础综合数据结构-8_真题-无答案

计算机学科专业基础综合数据结构-8(总分100,考试时间90分钟)单项选择题1. 若对序列(tang,deng,an,wang,shi,bai,fang,liu)采用简单选择排序法按字典顺序进行排序,下面给出的四个序列中,第三趟的结果是______。
A. an,bai,deng,wang,tang,fang,shi,liuB. an,bai,deng,wang,shi,tang,fang,liuC. an,bai,deng,wang,fang,shi,tang,liuD. an,bai,deng,wang,shi,liu,tang,fang2. 每次从排序记录中挑出最小(或最大)的关键字,加入到待排序序列的末尾,则该排序算法是______。
A. 选择排序B. 快速排序C. 冒泡排序D. 插入排序3. 一组记录的序列F={46,79,56,38,40,84},则利用快速排序算法,以第一个记录为基准,得到的一次划分结果为______。
A. {38,40,46,56,79,84}B. {40,38,46,79,56,84}C. {40,38,46,56,79,84}D. {40,38,46,84,56,79}4. 下列排序算法中,______算法可能会出现下面情况:初始数据有序时,花费的时间反而最多。
A. 堆排序B. 快速排序C. 冒泡排序D. 希尔排序5. 以下排序方法中,不需要进行关键字的比较的是______。
A. 快速排序B. 归并排序C. 基数排序D. 堆排序6. 直接插入排序在最好情况下的时间复杂度为______。
A. O(n)B. O(nlogn)C. O(logn)D. O(n2)7. 设有1000个无序元素,希望用最快的速度挑选出前10个最大的元素,最好选用______法。
A. 冒泡排序B. 快速排序C. 堆排序D. 基数排序8. 下面四种排序算法中,不是稳定排序的是______。
A. 冒泡排序B. 快速排序C. 堆排序D. 基数排序9. 就平均性能而言,目前最好的排序算法是______。
《数据结构》第八章习题参考答案 (1)

有向图的任意顶点的度=邻接表中顶点所对应边链表中结点个数+逆邻接表中顶点所对应边链表中结点个数;
4、课本P3928.3题
【解答】
n个顶点的无向连通图至少有n-1条边,n个பைடு நூலகம்点的无向强连通图至少有n(n-1)/2条边;n个顶点的有向连通图至少有n条边,n个顶点的有向强连通图至少有n(n-1)条边。
上面不正确的是(A)。
A.(1),(2),(3) B.(1) C.(1),(3) D.(2),(3)
5、下列说法不正确的是(C)。
A.图的遍历是从给定的源点出发每一个顶点仅被访问一次
B.遍历的基本算法有两种:深度遍历和广度遍历
C.图的深度遍历不适用于有向图
D.图的深度遍历是一个递归过程
三、填空题
1、判断一个无向图是一棵树的条件是_有n个顶点,n-1条边的无向连通图_。
注: 答案并不唯一
2、课本P3928.1题
【解答】
(1)不是强连通图
(2)简单路径如:D->B->C->F
(3)略
(4)邻接表见图,其他略
3、课本P3928.2题
【解答】
(1)邻接矩阵表示:无向图的边数为
矩阵中非零元素的个数/2;有向图的边数为矩阵中非零元素的个数。
邻接表表示时:无向图的边数为邻接表中边结点的个数/2;有向图的边数为邻接表中边结点的个数。
(2)(3)略
12、课本P3958.24题
【解答】
A->B : 10
A->B->D: 15
A->B->D->C : 17
A->B->D->E : 17
实验八 数组(一)

实验八 数组(一)一、实验学时 2学时二、实验目的1.熟练掌握数组的基本操作(定义、元素引用、输入和输出);2.掌握动态数组的定义和使用方法;3.掌握一维数组的常用算法(查找、排序、判断素数等)。
三、实验内容8-1 数组的输入和输出(1)通过此例掌握数组的概念、数组元素的输入、数组元素在文本框中的输出方法。
要求:在窗体上建立一个多行文本框(MultiLine 属性设置为True )Text1,二个命令按钮。
单击“产生随机数”按钮,产生20个[1,100]之间的随机数,存入一个数组中;单击“输出随机数”按钮,将数组中的20个随机数输出到多行文本框Text1中,要求每行输出4个随机数。
当程序运行时,“输出”按钮无效(图8-1左),当产生了随机数之后,使命令按钮有效(图8-1右)。
程序运行界面如图8-1所示。
步骤:(1)新建工程,添加控件;(2)按图8-1所示的界面设置各控件的属性;(3)编写命令按钮的单击事件过程,实现产生随机数,并在文本框中输出数组元素;(4)保存工程文件,运行并调试程序。
编程提示:A )因为在二个命令按钮的单击事件过程中都需要对同一个数组进行操作,故应在窗体顶部的声明段定义全局数组,而且在各事件过程中不能再定义同名的数组。
图8-1 在文本框中输出数组元素B )程序运行时“输出”按钮无效,应在窗体的Load 事件中写入相应代码。
C )将20个随机数存入数组中,需要使用循环结构,“产生随机数”按钮的单击事件过程代码结构如下:★ Randomize★ For I = 1 To 20为数组元素赋一个随机数Next I★ 使“输出随机数”命令按钮有效D )“输出随机数”按钮的单击事件过程中使用循环结构输出各数组元素,提示如下: ★ 清空Text1★ For I = 1 To 20输出一个元素(Text1.Text = Text1.Text & A(I) & " ")判断是否该在文本框中输出换行符号Next IE )在输出数组元素时,如果使用Format 函数,将使文本框中的输出排列整齐: Text1.Text = Text1.Text & Format(A(I), "@@@@@")8-2 数组的输入和输出(2)通过此例进一步掌握数组中元素下标的含义和数组元素在列表框中的输出方法。
数据结构第八章

关键字的比较次数 记录的移动次数
排 序
执行算法所需要的附加存储空间
§8.1 插入排序
数 据 结 构
直接插入排序
基本思想
整个排序过程为n-1趟插入,即先将序列中第1个记录看 成是一个有序子序列,然后从第2个记录开始,逐个进 行插入,直至整个序列有序(把记录逐一按其关键字的 大小插入到已经排好次序的记录序列中)
稳定的
快速排序(分区排序)
数 据 结 构
基本思想 通过一趟排序,将待排序记录分割成独立的两部分, 其中一部分记录的关键字均比另一部分记录的关键字 小,则可分别对这两部分记录进行排序,以达到整个 序列有序 排序过程:对r[s……t]中记录进行一趟快速排序,附 设两个指针i和j,设控制记录rp=r[s],x=rp.key
j j j j j j
第 八 章
i=6 i=7
排 序
算法实现
数 据 结 构
二重循环 外循环——完成一个记录的插入 比较、移动) 内循环——确定当前记录的位置 (比较、移动) R[0]作为辅助单元,存放要插入的记录R[i]
作为记录关键字两两比较中的一方 标志比较的边界
void insert(NODE r[ ],int n) ], { int i,j; for(i=2;i<=n;i++) { r[0]=r[i]; j=i-1; j=iwhile( r[0].key<r[ j ].key ) r[j+1]=r[j -- ]; r[j+1] =r[0]; } }
k 例
数 据 结 构
k 38 j k 65 j 97 j 76 j
k 13 49 j 27 ] j k 97 j 97 [97 49 49 49 49 76 j 76 76 [76 65 65 65 49 38 ] 27 j 49 49 97 [97 76 76 j 38 ] 65 ] 65 ] 76 ] [97 ] 97
数据结构第八章_排序

49 38 65 97 76
三趟排序:4 13 27 38 48 49 55 65 76 97
算法描述
#define T 3 int d[]={5,3,1};
例 13 48 97 55 76 4 13 49 27 38 65 49 27 38 65 48 97 55 76 4 j j j
j
j
i
例 初始: 49 38 65 97 76 13 27 48 55 4 取d1=5 49 38 65 97 76 13 27 48 55 4 一趟分组:
一趟排序:13 27 48 55 4 取d2=3 13 27 48 55 4 二趟分组:
49 38 65 97 76 49 38 65 97 76
二趟排序:13 4 48 38 27 49 55 65 97 76 取d3=1 13 27 48 55 4 三趟分组:
初始时令i=s,j=t
首先从j所指位置向前搜索第一个关键字小于x的记录,并和rp
交换 再从i所指位置起向后搜索,找到第一个关键字大于x的记录, 和rp交换 重复上述两步,直至i==j为止 再分别对两个子序列进行快速排序,直到每个子序列只含有 一个记录为止
快速排序演示
算法描述
算法评价
例
38 49 49 38 65 76 97 13 97 76 97 27 13 30 97 27 97 30 初 始 关 键 字
38 49 65 13 76 27 76 13 30 76 27 76 30 97 第 一 趟
38 49 13 65 27 65 13 30 65 27 65 30
38 13 49
时间复杂度
最好情况(每次总是选到中间值作枢轴)T(n)=O(nlog2n) 最坏情况(每次总是选到最小或最大元素作枢轴)
数据结构之第8章 广义表
3. 建立广义表的链式存储结构
假定广义表中的元素类型ElemType为char类型,
每个原子的值被限定为英文字母。
并假定广义表是一个表达式,其格式为:元素之
间用一个逗号分隔,表元素的起止符号分别为左、右
圆括号,空表在其圆括号内不包含任何字符。例如
“(a,(b,c,d))”就是一个符合上述规定的广义表格式。
/*广义表结点类型定义*/
广义表的两种基本情况 :
g2 1
∧
g1
1
∧
∧*Βιβλιοθήκη * 第 1 个元素**
…
*
*
∧
第 2 个元素
第 n 个元素
(a)空表
(b)非空表
为原子的情况 :
g3 0 a
∧
8.3 广义表的运算
1. 求广义表的长度 在广义表中,同一层次的每个结点是通过link域
链接起来的,所以可把它看做是由link域链接起来的
{ h->tag=1;
/*新结点作为表头结点*/
h->val.sublist=CreatGL(s); /*递归构造子表并链到表头结点*/ }
else if (ch==')') h=NULL; /*遇到')'字符,子表为空*/ else { h->tag=0; /*新结点作为原子结点*/ h->val.data=ch; } } else h=NULL; ch=*s; s++; if (h!=NULL) if (ch==',') h->link=CreatGL(s); else h->link=NULL; return h; }
单链表。这样,求广义表的长度就是求单链表的长度,
数据结构练习第八章查找
数据结构练习第⼋章查找数据结构练习第⼋章查找1.若有18个元素的有序表存放在⼀维数组A[19]中,第⼀个元素放A[1]中,现进⾏⼆分查找,则查找A[3]的⽐较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,32.设⼆叉排序树中有n个结点,则在⼆叉排序树的平均平均查找长度为()。
A. O(1)B. O(log2n)C. O(n)D. O(n2)3.在⼆叉排序树中插⼊⼀个结点的时间复杂度为()。
A. O(1)B. O(n)C. O(log2n)D. O(n2)4.设有序顺序表中有n个数据元素,则利⽤⼆分查找法查找数据元素X的最多⽐较次数不超过()。
A. log2n+1B. log2n-1C. log2nD. log2(n+1) 5.设有序表中有1000个元素,则⽤⼆分查找查找元素X最多需要⽐较()次。
A. 25B. 10C. 7D. 16.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。
A. O(n)B. O(n2)C. O(n1/2)D. O(1og2n) 7.设⼆叉排序树上有n个结点,则在⼆叉排序树上查找结点的平均时间复杂度为()。
A. O(n)B. O(n2)C. O(nlog2n)D. O(1og2n) 8.()⼆叉排序树可以得到⼀个从⼩到⼤的有序序列。
A. 先序遍历B.中序遍历C. 后序遍历D. 层次遍历9.设⼀组初始记录关键字序列为(13,18,24,35,47,50,62,83,90,115,134),则利⽤⼆分法查找关键字90需要⽐较的关键字个数为()。
A. 1B. 2C. 3D. 410.设某散列表的长度为100,散列函数H(k)=k % P,则P通常情况下最好选择()。
A. 99B. 97C. 91D. 9311.在⼆叉排序树中插⼊⼀个关键字值的平均时间复杂度为()。
A. O(n)B. O(1og2n)C. O(nlog2n)D. O(n2)12.设⼀个顺序有序表A[1:14]中有14个元素,则采⽤⼆分法查找元素A[4]的过程中⽐较元素的顺序为( )。
数据结构单元8练习参考答案
单元练习8一.判断题〔以下各题,正确的请在前面的括号内打√;错误的打╳〕〔√〕〔1〕图可以没有边,但不能没有顶点。
〔ㄨ〕〔2〕在无向图中,〔V1,V2〕与〔V2,V1〕是两条不同的边。
〔ㄨ〕〔3〕邻接表只能用于有向图的存储。
〔√〕〔4〕一个图的邻接矩阵表示是唯一的。
〔ㄨ〕〔5〕用邻接矩阵法存储一个图时,所占用的存储空间大小与图中顶点个数无关,而只与图的边数有关。
〔ㄨ〕〔6〕有向图不能进展广度优先遍历。
〔√〕〔7〕假设一个无向图的以顶点V1为起点进展深度优先遍历,所得的遍历序列唯一,则可以唯一确定该图。
〔√〕〔8〕存储无向图的邻接矩阵是对称的,因此只要存储邻接矩阵的上三角〔或下三角〕局部就可以了。
〔ㄨ〕〔9〕用邻接表法存储图时,占用的存储空间大小只与图中的边数有关,而与结点的个数无关。
〔√〕〔10〕假设一个无向图中任一顶点出发,进展一次深度优先遍历,就可以访问图中所有的顶点,则该图一定是连通的。
二.填空题(1)图常用的存储方式有邻接矩阵和邻接表等。
(2)图的遍历有:深度优先搜和广度优先搜等方法。
(3)有n条边的无向图邻接矩阵中,1的个数是_2n____。
(4)有向图的边也称为_ 弧___。
(5)图的邻接矩阵表示法是表示__顶点____之间相邻关系的矩阵。
(6)有向图G用邻接矩阵存储,其第i行的所有元素之和等于顶点i的__出度____。
(7)n个顶点e条边的图假设采用邻接矩阵存储,则空间复杂度为: O〔n2〕。
(8)n个顶点e条边的图假设采用邻接表存储,则空间复杂度为: O〔n+e〕。
(9)设有一稀疏图G,则G采用_邻接表____存储比拟节省空间。
(10)设有一稠密图G,则G采用_邻接矩阵____存储比拟节省空间。
(11)图的逆邻接表存储构造只适用于__有向____图。
(12) n个顶点的完全无向图有 n(n-1)/2_ 条边。
(13)有向图的邻接表表示适于求顶点的出度。
(14)有向图的邻接矩阵表示中,第i列上非0元素的个数为顶点V i的入度。
数据结构第8章 查找 答案
第8章 查找 测试题 及答案一、填空题1. 在数据的存放无规律而言的线性表中进行检索的最佳方法是 顺序查找(线性查找) 。
2. 线性有序表(a 1,a 2,a 3,…,a 256)是从小到大排列的,对一个给定的值k ,用二分法检索表中与k 相等的元素,在查找不成功的情况下,最多需要检索 8 次。
设有100个结点,用二分法查找时,最大比较次数是 7 。
3. 假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为 2 ;比较四次查找成功的结点数为 8 ;平均查找长度为 3.7 。
解:显然,平均查找长度=O (log 2n )<5次(25)。
但具体是多少次,则不应当按照公式)1(log 12++=n nn ASL 来计算(即(21×log 221)/20=4.6次并不正确!)。
因为这是在假设n =2m -1的情况下推导出来的公式。
应当用穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+5×5)=74; ASL =74/20=3.7 !!!4.【计研题2000】折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 28,6,12,20 比较大小。
5. 在各种查找方法中,平均查找长度与结点个数n 无关的查找方法是 散列查找 。
6. 散列法存储的基本思想是由 关键字的值 决定数据的存储地址。
7. 有一个表长为m 的散列表,初始状态为空,现将n (n<m )个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。
如果这n 个关键码的散列地址都相同,则探测的总次数是 n(n-1)/2=( 1+2+…+n-1) 。
(而任一元素查找次数 ≤n-1)二、单项选择题( B )1.在表长为n的链表中进行线性查找,它的平均查找长度为A. ASL=n; B. ASL=(n+1)/2;C. ASL=n +1; D. ASL≈log2(n+1)-1( A )2.折半查找有序表(4,6,10,12,20,30,50,70,88,100)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙江大学城市学院实验报告 课程名称 数据结构基础 实验项目名称 实验八 队列(循环队列)的表示和实现 学生姓名 专业班级 学号 实验成绩 指导老师(签名 ) 日期
一. 实验目的和要求 1、掌握队列的存储结构及基本操作。 2、掌握循环队列的设置及循环队列的各种基本操作的实现。 3、通过具体的应用实例,进一步熟悉和掌握队列的实际应用。
二. 实验内容 1、建立头文件test8.h,定义顺序存储的循环队列存储结构,并编写循环队列的各种基本操作实现函数。同时建立一个验证操作实现的主函数文件test8.cpp,编译并调试程序,直到正确运行。 说明:队列的基本操作可包括: ① void InitQueue (Queue &Q); //构造一个空队列 Q ② int EmptyQueue (Queue Q); //判断队列Q是否为空,若空返回1,否则返回0 ③ void EnQueue (Queue &Q, ElemType item); //元素 item 进队列Q ④ ElemType OutQueue (Queue &Q); //队头元素出队列Q,并返回其值 ⑤ ElemType PeekQueue (Queue Q); //返回队头元素值 ⑥ void ClearQueue (Queue &Q); //清空队列
2、应用(选做部分):编写程序,实现舞伴问题:假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队,跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴,若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求设计一个函数void partner(),模拟上述舞伴配对问题。 基本要求: 1) 由键盘输入数据,每对数据包括姓名和性别; 2) 输出结果包括配成舞伴的女士和男士的姓名,以及未配对者的队伍名称和队头者的姓名; 3) 要求利用test8.h中已实现的顺序循环队列的基本操作函数来实现。函数void partner() 添加到文件test8.cpp中,在主函数中进行调用测试。
测试数据如下: 请输入跳舞者的姓名和性别(以“# #”结束): aa F bb M cc F dd M ee F ff M gg M hh F ii M jj M # # 配对的舞伴是: aa bb cc dd ee ff hh gg 男队还有人等待下一轮舞曲。 ii 将是下一轮得到舞伴的第一人。
3、填写实验报告,实验报告文件取名为report8.doc。 4、上传实验报告文件report8.doc 、源程序文件test8.cpp及test8.h到Ftp服务器上( ftp://10.61.14.240:5000 )自己的文件夹下。
三. 函数的功能说明及算法思路 (包括每个函数的功能说明,及一些重要函数的算法实现思路) 1、 void InitQueue (Queue &Q) //构造一个空队列 Q { Q.MaxSize=10; Q.queue=new ElemType[Q.MaxSize]; Q.front=Q.rear=0; } 2、 int EmptyQueue (Queue Q)//判断队列Q是否为空,若空返回1,否则返回0 { return Q.front ==Q.rear ; } 3、 void EnQueue (Queue &Q, ElemType item) //元素 item 进队列Q { if((Q.rear +1)%Q.MaxSize ==Q.front ){ int k=sizeof(ElemType); Q.queue =(ElemType*)realloc(Q.queue ,2*Q.MaxSize *k); if(Q.rear !=Q.MaxSize -1){ for(int i=0;i<=Q.rear ;i++) Q.queue [i+Q.MaxSize ]=Q.queue [i]; Q.rear +=Q.MaxSize ; } Q.MaxSize =2*Q.MaxSize ; } Q.rear =(Q.rear +1)%Q.MaxSize ; Q.queue [Q.rear ]=item; } 4、 ElemType OutQueue (Queue &Q) //队头元素出队列Q,并返回其值 { if(Q.front ==Q.rear ){ cerr<<"列队已空,无法删除!" 四. 实验结果与分析 (包括运行结果截图、结果分析等) 1、 五. 心得体会 (记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。) 【附录----源程序】 Test8.h typedef struct Queue{ ElemType *queue; int front,rear,len; int MaxSize; }; void InitQueue (Queue &Q) //构造一个空队列 Q { Q.MaxSize=10; Q.queue=new ElemType[Q.MaxSize]; Q.front=Q.rear=0; } int EmptyQueue (Queue Q)//判断队列Q是否为空,若空返回1,否则返回0 { return Q.front ==Q.rear ; } void EnQueue (Queue &Q, ElemType item) //元素 item 进队列Q { if((Q.rear +1)%Q.MaxSize ==Q.front ){ int k=sizeof(ElemType); Q.queue =(ElemType*)realloc(Q.queue ,2*Q.MaxSize *k); if(Q.rear !=Q.MaxSize -1){ for(int i=0;i<=Q.rear ;i++) Q.queue [i+Q.MaxSize ]=Q.queue [i]; Q.rear +=Q.MaxSize ; } Q.MaxSize =2*Q.MaxSize ; } Q.rear =(Q.rear +1)%Q.MaxSize ; Q.queue [Q.rear ]=item; } ElemType OutQueue (Queue &Q) //队头元素出队列Q,并返回其值 { if(Q.front ==Q.rear ){ cerr<<"列队已空,无法删除!" ElemType PeekQueue (Queue Q) //返回队头元素值 { if(Q.front ==Q.rear ){ cerr<<"列队已空,无法读取!" void ClearQueue (Queue &Q) //清空队列 { if(Q.queue !=NULL) delete []Q.queue ; Q.front =Q.rear =0; Q.queue =NULL; Q.MaxSize =0; } Test8.cpp #include #include typedef int ElemType; #include"test8.h" void main() { Queue q; InitQueue (q); int a[10]={0,1,2,3,4,5,6,7,8,9}; int i; for(i=0;i<10;i++) EnQueue (q, a[i]); cout }