一、实验目的
1、熟练队列的结构特点,掌握队列的顺序存储和链式存储结构和实现。
2、 学会使用队列解决实际问题。
二、实验内容
自己确定结点的具体数据类型和问题规模:
分别建立一个顺序队列和链队列,实现队列的入队和出队操作。
三、实验步骤
1、依据实验内容分别说明实验程序中用到的数据类型的定义;
2、相关操作的算法表达;
3、完整程序;
4、总结、运行结果和分析。
5、总体收获和不足,疑问等。
四、实验代码
1、顺序队列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
|
1、顺序队列(循环队列)
2、链队列
六、实验总结及心得
1、总结
(1)实现循环队列和链队列的基本操作的算法都需要常数时间O(1)。
(2)本次实验顺序队列主要解决了“假溢出”和“队空和队满”的问题,解决假溢出的方法是:把存储队列的数组看成是头尾相接的循环结构,即允许队列直接从数组中下标最大的位置延续到下标最小的位置。队列的这种头尾相接的顺序存储结构称为循环队列。判断队满的条件是:(rear+1)%QueueSize=front。
2、心得
熟悉了队列的假溢出操作,但对队满的算法还存在一些疑惑,需要在日后的实验中好好体会,争取以后不看书本也能调试出合理的代码。