全国二级理论——1.2数据结构与算法 本套试题共50题。 1. 班级:格式如“19计应31”2. 学号:10位数完整格式3. 姓名:4. 设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为______。A. 15B. 16C. 20D. 0或355. 下列关于栈的叙述正确的是______。A. 栈按"先进先出"组织数据B. 栈按"先进后出"组织数据C. 只能在栈底插入数据D. 不能删除数据6. 设序列长度为n,在最坏情况下比较次数低于O(n2)的排序方法是______。A. 快速排序B. 直接插入排序C. 冒泡排序D. 希尔排序7. 某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m,rear=m-1,则该循环队列中的元素个数为______。A. mB. m-1C. 1D. 08. 设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=20,rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为______。A. 5B. 6C. m-5D. m-69. 下列叙述中正确的是______。A. 有两个指针域的链表一定是二叉树的存储结构B. 循环队列是队列的一种存储结构C. 二分查找适用于任何存储方式的有序表D. 所有二叉树均不适合采用顺序存储结构10. 下列叙述中错误的是______。A. 在带链队列中,队头指针和队尾指针都是在动态变化的B. 在带链栈中,栈顶指针和栈底指针都是在动态变化的C. 在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的D. 栈和队列都是线性表,都可以采用链式存储结构11. 下列叙述中正确的是______。A. 非线性结构只能采用链式存储结构B. 非线性结构只能用多重链表表示C. 所有数据结构既可以采用顺序存储结构,也可以采用链式存储结构D. 有的非线性结构也能采用顺序存储结构12. [(2)简单插入排序法:在简单插入排序法中,每一次比较后最多移掉一个逆序,因此,这种排序方法的效率与冒泡排序法相同。在最坏情况下,简单插入排序需要n(n-1)/2次比较。]13. 下列叙述中正确的是______。A. 算法就是程序B. 设计算法时只需要考虑数据结构的设计C. 设计算法只需要考虑结果的可靠性D. 设计算法时要考虑时间复杂度和空间复杂度14. [(3)简单选择排序法:对于长度为n的序列,选择排序需要扫描n-1遍,每一遍扫描均从剩下的子表中选出最小的元素,然后将该最小的元素与子表中的第一个元素进行交换。简单选择排序法在最坏情况下需要比较n(n-1)/2次。]15. 设二叉树的中序序列为BCDA,前序序列为ABCD,则后序序列为______。A. CBDAB. DCBAC. BCDAD. ACDB16. 下列数据结构中,属于非线性结构的是______。A. 循环队列B. 带链队列C. 二叉树D. 带链栈17. 某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)______。A. 12B. 6C. 8D. 318. 在下列选项中,哪个不是一个算法一般应该具有的基本特征______。A. 确定性B. 可行性C. 无穷性D. 拥有足够的情报19. 下列叙述中正确的是______。A. 所谓有序表是指在顺序存储空间内连续存放的元素序列B. 有序表只能顺序存储在连续的存储空间内C. 有序表可以用链接存储方式存储在不连续的存储空间内D. 任何存储方式的有序表均能采用二分法进行查找20. 下列处理中与队列有关的是______。A. 操作系统中的作业调度B. 执行程序中的过程调用C. 执行程序中的循环控制D. 以上说法均不正确21. 在深度为5的满二叉树中,叶子结点的个数为______。A. 32B. 31C. 16D. 1522. 下列各组排序法中,最坏情况下比较次数相同的是______。A. 冒泡排序与快速排序B. 简单插入排序与希尔排序C. 希尔排序与堆排序D. 快速排序与希尔排序23. 下列链表中,其逻辑结构属于非线性结构的是______。A. 二叉链表B. 循环链表C. 双向链表D. 带链的栈24. [(4)堆排序法:堆排序的方法为:①首先将一个无序序列建成堆。②然后将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。堆排序在最坏的情况下,其时间复杂度为O(nlog2n)。]25. [(3)冒泡排序法:是一种最简单的交换类排序法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要比较的次数为n(n-1)/2次。因此冒泡排序总的时间复杂度为O(n2)。]26. 在下列几种排序方法中,要求内存量最大的是______。A. 插入排序B. 选择排序C. 快速排序D. 归并排序27. 设某二叉树的后序序列为CBA,中序序列为ABC,则该二叉树的前序序列为______。A. BCAB. CBAC. ABCD. CAB28. 算法的空间复杂度是指______。A. 算法在执行过程中所需要的计算机存储空间B. 算法所处理的数据量C. 算法程序中的语句或指令条数D. 算法在执行过程中所需要的临时工作单元数29. 下列叙述中错误的是______。A. 不管是顺序栈还是带链的栈,在操作过程中其栈底指针均是固定不变的B. 带链栈的栈底指针在操作过程中是有可能改变的C. 不管是顺序栈还是带链的栈,在操作过程中其栈顶指针均是动态变化的D. 顺序栈的栈底指针在操作过程中是固定不变的30. 某二叉树的后序遍历序列与中序遍历序列相同,均为ABCDEF,则前序遍历序列为______。A. FEDCBAB. CBAFEDC. DEFCBAD. ABCDEF31. 设顺序表的长度为n。下列算法中,最坏情况下比较次数等于n(n-1)/2的是______。A. 堆排序B. 快速排序C. 顺序查找D. 寻找最大项32. 设数据结构B=(D, R),其中:D={ a, b, c, d, e, f };R={ (a, b), (b, c), (c, d), (d, e), (e, f), (f, a) },该数据结构为______。A. 线性结构B. 循环队列C. 循环链表D. 非线性结构33. 某带链的队列初始状态为front=rear=NULL。经过一系列正常的入队与退队操作后,front=rear=10。该队列中的元素个数为______。A. 1B. 0C. 1或0D. 不确定34. 某二叉树的前序序列为ABDFHCEG,中序序列为HFDBACEG。该二叉树按层次输出(同一层从左到右)的序列为______。A. HFDBGECAB. ABCDEFGHC. HGFEDCBAD. ACEGBDFH35. 下列叙述中正确的是______。A. 带链栈的栈底指针是固定的B. 若带链队列的队头指针与队尾指针相同,则队列为空C. 若带链队列的队头指针与队尾指针相同,则队列中至少有一个元素D. 带链栈的栈底指针是随栈的操作而动态变化的36. 带链队列空的条件是______。A. front=rear=NULLB. front=-1且rear=NULLC. front=NULL且rear=-1D. front=rear=-137. 度为3的一棵树共有30个结点,其中度为3、1的结点个数分别为3、4。则该树中的叶子结点数为______。A. 16B. 15C. 14D. 不可能有这样的树38. 设顺序表的长度为16,对该表进行简单插入排序。在最坏情况下需要的比较次数为______。A. 120B. 60C. 30D. 1539. 某二叉树的前序序列为ABDFHCEG,中序序列为HFDBACEG。该二叉树的后序序列为______。A. HFDBGECAB. ABCDEFGHC. HGFEDCBAD. ACEGBDFH40. 设二叉树共有500个结点,其中叶子结点有250个。则度为2的结点个数是______。A. 249B. 1C. 0D. 不可能有这样的二叉树41. 循环队列的存储空间为Q(1:100),初始状态为front=rear=100。经过一系列正常的入队与退队操作后,front=rear=99,则循环队列中的元素个数为______。A. 0或100B. 1C. 2D. 9942. 下列叙述中正确的是______。A. 快速排序适用于链式存储的线性表B. 快速排序法适用于顺序存储的线性表C. 链式存储的线性表不可能排序D. 堆排序适用于非线性结构43. 下列叙述中错误的是______。A. 具有多个指针域的链表也可能是线性结构B. 循环队列属于线性结构C. 采用顺序存储的完全二叉树属于线性结构D. 具有两个以上根结点的数据结构一定是非线性结构44. 下列排序方法中,最坏情况下时间复杂度(即比较次数)最低的是______。A. 希尔排序B. 快速排序C. 简单插入排序D. 冒泡排序45. 设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。则按层次输出(从上到下,同一层从左到右)的序列为______。A. DGHEBIJFCAB. JIHGFEDCBAC. GHIJDEFBCAD. ABCDEFGHIJ46. 树的度为3,且有9个度为3的结点,5个度为1的结点,但没有度为2的结点。则该树总的结点数为______。A. 33B. 14C. 32D. 1947. 树的度为3,且有9个度为3的结点,5个度为1的结点,但没有度为2的结点。则该树中的叶子结点数为______。A. 33B. 19C. 18D. 3248. 设栈与队列初始状态为空。将元素A,B,C,D,E,F,G,H依次轮流入栈和入队,然后依次轮流退队和出栈,则输出序列为______。A. B,G,D,E,F,C,H,AB. G,B,E,D,C,F,A,HC. D,C,B,A,E,F,G,HD. A,B,C,D,H,G,F,E49. 对下列二叉树进行前序遍历的结果为______。 A. DYBEAFCZXB. YDEBFZXCAC. ABDYECFXZD. ABCDEFXYZ50. 对如下二叉树进行后序遍历的结果为______。 A. ABCDEFB. DBEAFCC. ABDECFD. DEBFCA51. 某系统总体结构如下图所示,该系统结构图的深度是______。 A. 4B. 3C. 2D. 152. 某系统总体结构如下图所示,系统结构图的最大扇入数是______。 A. 2B. 3C. 4D. 553. 某系统结构图如下图所示,该系统结构图的深度是______。 A. 4B. 3C. 2D. 1 提交成功!
全国二级理论——1.2数据结构与算法 本套试题共50题。 1. 班级:格式如“19计应31”2. 学号:10位数完整格式3. 姓名:4. 设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为______。A. 15B. 16C. 20D. 0或355. 下列关于栈的叙述正确的是______。A. 栈按"先进先出"组织数据B. 栈按"先进后出"组织数据C. 只能在栈底插入数据D. 不能删除数据6. 设序列长度为n,在最坏情况下比较次数低于O(n2)的排序方法是______。A. 快速排序B. 直接插入排序C. 冒泡排序D. 希尔排序7. 某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m,rear=m-1,则该循环队列中的元素个数为______。A. mB. m-1C. 1D. 08. 设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=20,rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为______。A. 5B. 6C. m-5D. m-69. 下列叙述中正确的是______。A. 有两个指针域的链表一定是二叉树的存储结构B. 循环队列是队列的一种存储结构C. 二分查找适用于任何存储方式的有序表D. 所有二叉树均不适合采用顺序存储结构10. 下列叙述中错误的是______。A. 在带链队列中,队头指针和队尾指针都是在动态变化的B. 在带链栈中,栈顶指针和栈底指针都是在动态变化的C. 在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的D. 栈和队列都是线性表,都可以采用链式存储结构11. 下列叙述中正确的是______。A. 非线性结构只能采用链式存储结构B. 非线性结构只能用多重链表表示C. 所有数据结构既可以采用顺序存储结构,也可以采用链式存储结构D. 有的非线性结构也能采用顺序存储结构12. [(2)简单插入排序法:在简单插入排序法中,每一次比较后最多移掉一个逆序,因此,这种排序方法的效率与冒泡排序法相同。在最坏情况下,简单插入排序需要n(n-1)/2次比较。]13. 下列叙述中正确的是______。A. 算法就是程序B. 设计算法时只需要考虑数据结构的设计C. 设计算法只需要考虑结果的可靠性D. 设计算法时要考虑时间复杂度和空间复杂度14. [(3)简单选择排序法:对于长度为n的序列,选择排序需要扫描n-1遍,每一遍扫描均从剩下的子表中选出最小的元素,然后将该最小的元素与子表中的第一个元素进行交换。简单选择排序法在最坏情况下需要比较n(n-1)/2次。]15. 设二叉树的中序序列为BCDA,前序序列为ABCD,则后序序列为______。A. CBDAB. DCBAC. BCDAD. ACDB16. 下列数据结构中,属于非线性结构的是______。A. 循环队列B. 带链队列C. 二叉树D. 带链栈17. 某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)______。A. 12B. 6C. 8D. 318. 在下列选项中,哪个不是一个算法一般应该具有的基本特征______。A. 确定性B. 可行性C. 无穷性D. 拥有足够的情报19. 下列叙述中正确的是______。A. 所谓有序表是指在顺序存储空间内连续存放的元素序列B. 有序表只能顺序存储在连续的存储空间内C. 有序表可以用链接存储方式存储在不连续的存储空间内D. 任何存储方式的有序表均能采用二分法进行查找20. 下列处理中与队列有关的是______。A. 操作系统中的作业调度B. 执行程序中的过程调用C. 执行程序中的循环控制D. 以上说法均不正确21. 在深度为5的满二叉树中,叶子结点的个数为______。A. 32B. 31C. 16D. 1522. 下列各组排序法中,最坏情况下比较次数相同的是______。A. 冒泡排序与快速排序B. 简单插入排序与希尔排序C. 希尔排序与堆排序D. 快速排序与希尔排序23. 下列链表中,其逻辑结构属于非线性结构的是______。A. 二叉链表B. 循环链表C. 双向链表D. 带链的栈24. [(4)堆排序法:堆排序的方法为:①首先将一个无序序列建成堆。②然后将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。堆排序在最坏的情况下,其时间复杂度为O(nlog2n)。]25. [(3)冒泡排序法:是一种最简单的交换类排序法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要比较的次数为n(n-1)/2次。因此冒泡排序总的时间复杂度为O(n2)。]26. 在下列几种排序方法中,要求内存量最大的是______。A. 插入排序B. 选择排序C. 快速排序D. 归并排序27. 设某二叉树的后序序列为CBA,中序序列为ABC,则该二叉树的前序序列为______。A. BCAB. CBAC. ABCD. CAB28. 算法的空间复杂度是指______。A. 算法在执行过程中所需要的计算机存储空间B. 算法所处理的数据量C. 算法程序中的语句或指令条数D. 算法在执行过程中所需要的临时工作单元数29. 下列叙述中错误的是______。A. 不管是顺序栈还是带链的栈,在操作过程中其栈底指针均是固定不变的B. 带链栈的栈底指针在操作过程中是有可能改变的C. 不管是顺序栈还是带链的栈,在操作过程中其栈顶指针均是动态变化的D. 顺序栈的栈底指针在操作过程中是固定不变的30. 某二叉树的后序遍历序列与中序遍历序列相同,均为ABCDEF,则前序遍历序列为______。A. FEDCBAB. CBAFEDC. DEFCBAD. ABCDEF31. 设顺序表的长度为n。下列算法中,最坏情况下比较次数等于n(n-1)/2的是______。A. 堆排序B. 快速排序C. 顺序查找D. 寻找最大项32. 设数据结构B=(D, R),其中:D={ a, b, c, d, e, f };R={ (a, b), (b, c), (c, d), (d, e), (e, f), (f, a) },该数据结构为______。A. 线性结构B. 循环队列C. 循环链表D. 非线性结构33. 某带链的队列初始状态为front=rear=NULL。经过一系列正常的入队与退队操作后,front=rear=10。该队列中的元素个数为______。A. 1B. 0C. 1或0D. 不确定34. 某二叉树的前序序列为ABDFHCEG,中序序列为HFDBACEG。该二叉树按层次输出(同一层从左到右)的序列为______。A. HFDBGECAB. ABCDEFGHC. HGFEDCBAD. ACEGBDFH35. 下列叙述中正确的是______。A. 带链栈的栈底指针是固定的B. 若带链队列的队头指针与队尾指针相同,则队列为空C. 若带链队列的队头指针与队尾指针相同,则队列中至少有一个元素D. 带链栈的栈底指针是随栈的操作而动态变化的36. 带链队列空的条件是______。A. front=rear=NULLB. front=-1且rear=NULLC. front=NULL且rear=-1D. front=rear=-137. 度为3的一棵树共有30个结点,其中度为3、1的结点个数分别为3、4。则该树中的叶子结点数为______。A. 16B. 15C. 14D. 不可能有这样的树38. 设顺序表的长度为16,对该表进行简单插入排序。在最坏情况下需要的比较次数为______。A. 120B. 60C. 30D. 1539. 某二叉树的前序序列为ABDFHCEG,中序序列为HFDBACEG。该二叉树的后序序列为______。A. HFDBGECAB. ABCDEFGHC. HGFEDCBAD. ACEGBDFH40. 设二叉树共有500个结点,其中叶子结点有250个。则度为2的结点个数是______。A. 249B. 1C. 0D. 不可能有这样的二叉树41. 循环队列的存储空间为Q(1:100),初始状态为front=rear=100。经过一系列正常的入队与退队操作后,front=rear=99,则循环队列中的元素个数为______。A. 0或100B. 1C. 2D. 9942. 下列叙述中正确的是______。A. 快速排序适用于链式存储的线性表B. 快速排序法适用于顺序存储的线性表C. 链式存储的线性表不可能排序D. 堆排序适用于非线性结构43. 下列叙述中错误的是______。A. 具有多个指针域的链表也可能是线性结构B. 循环队列属于线性结构C. 采用顺序存储的完全二叉树属于线性结构D. 具有两个以上根结点的数据结构一定是非线性结构44. 下列排序方法中,最坏情况下时间复杂度(即比较次数)最低的是______。A. 希尔排序B. 快速排序C. 简单插入排序D. 冒泡排序45. 设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。则按层次输出(从上到下,同一层从左到右)的序列为______。A. DGHEBIJFCAB. JIHGFEDCBAC. GHIJDEFBCAD. ABCDEFGHIJ46. 树的度为3,且有9个度为3的结点,5个度为1的结点,但没有度为2的结点。则该树总的结点数为______。A. 33B. 14C. 32D. 1947. 树的度为3,且有9个度为3的结点,5个度为1的结点,但没有度为2的结点。则该树中的叶子结点数为______。A. 33B. 19C. 18D. 3248. 设栈与队列初始状态为空。将元素A,B,C,D,E,F,G,H依次轮流入栈和入队,然后依次轮流退队和出栈,则输出序列为______。A. B,G,D,E,F,C,H,AB. G,B,E,D,C,F,A,HC. D,C,B,A,E,F,G,HD. A,B,C,D,H,G,F,E49. 对下列二叉树进行前序遍历的结果为______。 A. DYBEAFCZXB. YDEBFZXCAC. ABDYECFXZD. ABCDEFXYZ50. 对如下二叉树进行后序遍历的结果为______。 A. ABCDEFB. DBEAFCC. ABDECFD. DEBFCA51. 某系统总体结构如下图所示,该系统结构图的深度是______。 A. 4B. 3C. 2D. 152. 某系统总体结构如下图所示,系统结构图的最大扇入数是______。 A. 2B. 3C. 4D. 553. 某系统结构图如下图所示,该系统结构图的深度是______。 A. 4B. 3C. 2D. 1 提交成功!
4. 设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为______。A. 15B. 16C. 20D. 0或35
7. 某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m,rear=m-1,则该循环队列中的元素个数为______。A. mB. m-1C. 1D. 0
8. 设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=20,rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为______。A. 5B. 6C. m-5D. m-6
10. 下列叙述中错误的是______。A. 在带链队列中,队头指针和队尾指针都是在动态变化的B. 在带链栈中,栈顶指针和栈底指针都是在动态变化的C. 在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的D. 栈和队列都是线性表,都可以采用链式存储结构
11. 下列叙述中正确的是______。A. 非线性结构只能采用链式存储结构B. 非线性结构只能用多重链表表示C. 所有数据结构既可以采用顺序存储结构,也可以采用链式存储结构D. 有的非线性结构也能采用顺序存储结构
14. [(3)简单选择排序法:对于长度为n的序列,选择排序需要扫描n-1遍,每一遍扫描均从剩下的子表中选出最小的元素,然后将该最小的元素与子表中的第一个元素进行交换。简单选择排序法在最坏情况下需要比较n(n-1)/2次。]
19. 下列叙述中正确的是______。A. 所谓有序表是指在顺序存储空间内连续存放的元素序列B. 有序表只能顺序存储在连续的存储空间内C. 有序表可以用链接存储方式存储在不连续的存储空间内D. 任何存储方式的有序表均能采用二分法进行查找
24. [(4)堆排序法:堆排序的方法为:①首先将一个无序序列建成堆。②然后将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。堆排序在最坏的情况下,其时间复杂度为O(nlog2n)。]
25. [(3)冒泡排序法:是一种最简单的交换类排序法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要比较的次数为n(n-1)/2次。因此冒泡排序总的时间复杂度为O(n2)。]
29. 下列叙述中错误的是______。A. 不管是顺序栈还是带链的栈,在操作过程中其栈底指针均是固定不变的B. 带链栈的栈底指针在操作过程中是有可能改变的C. 不管是顺序栈还是带链的栈,在操作过程中其栈顶指针均是动态变化的D. 顺序栈的栈底指针在操作过程中是固定不变的
32. 设数据结构B=(D, R),其中:D={ a, b, c, d, e, f };R={ (a, b), (b, c), (c, d), (d, e), (e, f), (f, a) },该数据结构为______。A. 线性结构B. 循环队列C. 循环链表D. 非线性结构
34. 某二叉树的前序序列为ABDFHCEG,中序序列为HFDBACEG。该二叉树按层次输出(同一层从左到右)的序列为______。A. HFDBGECAB. ABCDEFGHC. HGFEDCBAD. ACEGBDFH
35. 下列叙述中正确的是______。A. 带链栈的栈底指针是固定的B. 若带链队列的队头指针与队尾指针相同,则队列为空C. 若带链队列的队头指针与队尾指针相同,则队列中至少有一个元素D. 带链栈的栈底指针是随栈的操作而动态变化的
41. 循环队列的存储空间为Q(1:100),初始状态为front=rear=100。经过一系列正常的入队与退队操作后,front=rear=99,则循环队列中的元素个数为______。A. 0或100B. 1C. 2D. 99
45. 设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。则按层次输出(从上到下,同一层从左到右)的序列为______。A. DGHEBIJFCAB. JIHGFEDCBAC. GHIJDEFBCAD. ABCDEFGHIJ
48. 设栈与队列初始状态为空。将元素A,B,C,D,E,F,G,H依次轮流入栈和入队,然后依次轮流退队和出栈,则输出序列为______。A. B,G,D,E,F,C,H,AB. G,B,E,D,C,F,A,HC. D,C,B,A,E,F,G,HD. A,B,C,D,H,G,F,E