2012广西壮族自治区JAVA版数据结构必过技巧
全国计算机等级考试二级JAVA真题2012年3月

全国计算机等级考试二级JAVA真题2012年3月(总分:100.00,做题时间:90分钟)一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(总题数:35,分数:70.00)1.下列关于栈序正确的是(分数:2.00)A.栈顶元素最先能被删除√B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对解析:2.下列叙述中正确的是(分数:2.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构√C.循环链表是非线性结构D.双向链表是非线性结构解析:3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)(分数:2.00)A.3B.4C.6D.7 √解析:4.在软件开发中,需求分析阶段产生的主要文档是(分数:2.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书√解析:5.结构化程序所要求的基本结构不包括(分数:2.00)A.顺序结构B.GOTO跳转√C.选择(分支)结构D.重复(循环)结构解析:6.下面描述中错误的是(分数:2.00)A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程√C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具解析:7.负责数据库中查询操作的数据库语言是(分数:2.00)A.数据定义语言B.数据管理语言C.数据操纵语言√D.数据控制语言解析:8.一个教师可讲授多问课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是(分数:2.00)A.1:1联系B.1:m联系C.m:1联系D.m:n联系√解析:9.有三个关系R、S和T如下:R和S得到关系T的操作是(分数:2.00)A.自然连接√B.交C.除D.并解析:10.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是(分数:2.00)A.-369B.369 √C.0.369D.整数集合{1,2,3,4,5}解析:11.下列关于面向对象的论述中,正确的是(分数:2.00)A.面向对象是指以对象为中心,分析、设计和实现应用程序的机制√B.面向对象是指以功能为中心,分析、设计和实现应用程序的机制C.面向对象仅适用于程序设计阶段D.面向对象是一种程序设计语言解析:12.语句”Hello”.equals(“hello”);的正确执行结果是(分数:2.00)A.trueB.false √C.0D.1解析:13.下列关于Java源程序结构的论述中,正确是(分数:2.00)A.一个文件包含的import语句最多1个B.一个文件包含的public类最多1个√C.一个文件包含的接口定义最多1个D.一个文件包含的类定义最多1个解析:14.下列不属于Java关键字的是(分数:2.00)A.thisB.superC.finallyD.NULL √解析:15.下列代码的执行结果是 public class Test { public static void main(String[] args) { int[] x={0,1,2,3}; for(int i=0;i(分数:2.00)A.error1B.error2C.error1error2 √D.2error2解析:16.下列整数的定义中,错误的是(分数:2.00)A.int f=3.14; √B.int a=012;C.int i=189;D.int d-0x123;解析:17.要得到某目录下的所有文件名,在下列代码的下划线处应填入的内容是(两个下划线的内容相同)________pathname = new________(args[0]); String[] filename = pathname.list();(分数:2.00)A.FileInputStreamB.FileOutputStreamC.File √D.RandomAccessFile解析:18.在下列代码的下划线处应填入的内容是 public class FirstSample { public static voidmain(________args[]) { System.out.println("你好!"); } } }(分数:2.00)A.staffB.doubleC.intD.String √解析:19.Object类中的方法public int hashCode(),在其子类覆盖该方法时,其方法修饰符可以是(分数:2.00)A.protectedB.public √C.privateD.缺省解析:20.下面代码中的内部类名是 import java.awt*; import javax.swing.*; class TalkingClock { public static void main(int interval,final boolean beep) { ActionListener listener = new ActionListener(){ public void actionPerformed(ActionEvent event){ ________ } } Timer t = new Timer(interval,listener); t.start(); } }(分数:2.00)A.TimerB.ActionListenerC.listenerD.匿名√解析:21.已知zipname是一个压缩文件名,则zipname在下列代码中出现的正确位置是ZipInPutStream zin =new ZipInPutStream(new FileInPutStream(①)); ZipEnatry entry; While((entry =zin.getNextEntry(②))!=null{ fileCombo.addItem(entry.getName(③)); zin.closeEntry(④); } Zin.close();(分数:2.00)A.①√B.②C.③D.④解析:22.下列代码的执行结果是 int numbers[]=new int[6]; for(int i=1;i(分数:2.00)A.0 1 2 3 4 5B.1 2 3 4 5 6C.0 1 2 3 4 √D.1 2 3 4 5解析:23.Java API中支持线程的类或接口是Ⅰng.Thread Ⅱng.RunnableⅢng.ThreadGroup Ⅳ.java.io.Serializable(分数:2.00)A.Ⅰ,ⅡB.Ⅰ,Ⅱ,ⅢC.Ⅰ,Ⅱ,ⅣD.Ⅰ,Ⅱ,Ⅲ,Ⅳ√解析:24.下列关于Test类的定义中,正确的是(分数:2.00)A.class Test implements Runnable {public void run(){}public void someMethod(){}} √B.class Test implements Runnable {public void run();}C.class Test implements Runnable {public void someMethod();}D.class Test implements Runnable {public void someMethod(){}}解析:25.下列方法被调用后,一定使调用线程改变当前状态的是(分数:2.00)A.notify()B.yield() √C.sleep()D.isAlive()解析:26.在堆栈类SharedStack的定义中,为了保证堆栈在并发操作中数据的正确性,应在下划线处填入的修饰符是(两个下划线的填写内容相同) public class SharedStack { ________int idx=0; ________char[] data= new char[10]; public synchronized void push(char c) {________} public synchronized void pop(){________} }(分数:2.00)A.public √B.不使用修饰符C.privateD.protected解析:27.下列代码编译或执行结果的描述中,正确的是 class Test{ public static void main(Stringargs[]){ TestThread pm1 = new TestThread("One"); pm1.start(); TestThread pm2 = new TestThread("Two"); pm2.start(); } } class TestThread extends Thread{ private String sTname=""; TestThread(String s){ sTname = s; } public void run(){ for(int i=0;i(分数:2.00)A.不能通过编译,TestThread类中不能定义变量和构造方法B.输出 One One Two TwoC.输出 Two One One TwoD.选项B或C都有可能出现√解析:28.下列关于Applet的叙述中,正确的是(分数:2.00)A.为了使Applet在浏览器中运行,需要在HTML文件中嵌入相应的Applet类√B.Applet不能使用从外部接收参数C.Applet不能使用javac 命令进行编译D.java Application 与Applet都必须包含main()方法解析:29.下列代码的下划线处应填入的方法名是 import java.applet.*; import java.awt.*; public class Hello extends Applet { public void ________(Graphics g){ g.drawString("How are you!", 10, 10); } } (分数:2.00)A.repaintB.printlnC.paint √D.show解析:30.下列变量的定义中,错误的是(分数:2.00)A.int x=3;B.float f;d; √C.String s=”Hello!”D.boolean b=true;解析:31.下列代码的执行结果是 int length = "Hello".length(); System.out.println(length);(分数:2.00)A.5 √B.2C.10D.6解析:32.下列代码的编译或执行结果是public class MyVal { public static void main(String[] args) { MyVal m = new MyVal(); m.aMethod(); } public void aMethod(){ boolean [] b = new Boolean [5]; System.out.println(b[0]); } }(分数:2.00)A.1B.nullC.0D.编译错误√解析:33.若变量a是String类型的数据,那么表达式(a+a)的类型是(分数:2.00)A.charB.String √C.intD.long解析:ponent类中用于刷新组件的方法是(分数:2.00)A.getFontB.getNameC.update √D.paint解析:35.鼠标在窗口中移动时,产生的事件是(分数:2.00)A.ActionEventB.PrintEventC.KeyEventD.MouseEvent √解析:二、填空题(每空2分,共30分) (总题数:15,分数:30.00)36.有序线性表能进行二分查找的前提是该线性表必须是 1存储的。
广西壮族自治区java本入门

广西壮族自治区java版本入门————————————————————————————————作者:————————————————————————————————日期:1、后序遍历最后访问根结点,即在递归算法中,根是压在栈底的。
采用后序非递归算法,栈中存放二叉树结点的指针,当访问到某结点时,栈中所有元素均为该结点的祖先。
本题要找p和q 的最近共同祖先结点r ,不失一般性,设p在q的左边。
后序遍历必然先遍历到结点p,栈中元素均为p的祖先。
将栈拷入另一辅助栈中。
再继续遍历到结点q时,将栈中元素从栈顶开始逐个到辅助栈中去匹配,第一个匹配(即相等)的元素就是结点p 和q的最近公共祖先。
typedef struct{BiTree t;int tag;//tag=0 表示结点的左子女已被访问,tag=1表示结点的右子女已被访问}stack;stack s[],s1[];//栈,容量够大BiTree Ancestor(BiTree ROOT,p,q,r)//求二叉树上结点p和q的最近的共同祖先结点r。
{top=0; bt=ROOT;while(bt!=null ||top>0){while(bt!=null && bt!=p && bt!=q) //结点入栈{s[++top].t=bt; s[top].tag=0; bt=bt->lchild;} //沿左分枝向下if(bt==p) //不失一般性,假定p在q的左侧,遇结点p时,栈中元素均为p的祖先结点{for(i=1;i<=top;i++) s1[i]=s[i]; top1=top; }//将栈s的元素转入辅助栈s1 保存if(bt==q) //找到q 结点。
for(i=top;i>0;i--)//;将栈中元素的树结点到s1去匹配{pp=s[i].t;for (j=top1;j>0;j--)if(s1[j].t==pp) {printf(“p 和q的最近共同的祖先已找到”);return (pp);}}while(top!=0 && s[top].tag==1) top--; //退栈if (top!=0){s[top].tag=1;bt=s[top].t->rchild;} //沿右分枝向下遍历}//结束while(bt!=null ||top>0)return(null);//q、p无公共祖先}//结束Ancestor2、有一个带头结点的单链表,每个结点包括两个域,一个是整型域info,另一个是指向下一个结点的指针域next。
2013年广西壮族自治区数据结构考试技巧重点

15、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
16、下列选项中,符合堆定义的是
A.{102,24,55,60,89,93}
B.{24,89,55,60,93,102}
C.{102,93,55,60,89,24}
D.{102,60。89,93,55,24}
17、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。
A.数据元素具有同一特点
8、对于图1所示的二叉树,其后序序列为(C )。
A)ABDECFG B)DBEAFCG
C)DEBFGCA D)GFCEBDA
9、数据结构中,从逻辑上可以把数据结构分成(?)。
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
D 存储方式最节省运算时间。
A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表
7、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.对应顶点v的度
B.对应顶点v的出度
C.对应顶点v的入度
D.依附于对应顶点v的边数
C.树中两个权值最小的结点可能是兄弟结点
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
45、栈采用不同的存储方式时,下列关于出栈过程的叙述中,正确的是
A.顺序栈需要判定栈空,链栈也需要判定
B.顺序栈需要判定栈空,而链栈不需要判定
C.顺序栈不需要判定栈空,而链栈需要判定
JAVA提高代码效率的方法

JAVA提高代码效率的方法Java是一种高性能语言,但是在编写代码时,我们仍然可以使用一些技巧来提高代码效率。
以下是一些提高Java代码效率的方法:1.使用合适的数据结构:选择正确的数据结构可以显著提高代码效率。
例如,如果需要频繁地进行插入和删除操作,使用链表比使用数组更高效。
如果需要快速访问元素,使用哈希表或树结构。
2.减少循环嵌套:嵌套循环是代码效率低下的一个常见原因。
尽量避免多层嵌套的循环,并考虑使用更高效的算法来处理问题。
3. 使用StringBuilder代替String拼接:在Java中,String对象是不可变的,每次对字符串进行拼接操作都会创建一个新的String对象,这会导致大量的内存分配和垃圾回收。
使用StringBuilder可以避免这个问题,并显著提高字符串拼接的效率。
4.使用局部变量:在循环中,将需要频繁访问的对象保存为局部变量可以减少访问成员变量的开销。
这是因为局部变量存储在栈中,而成员变量存储在堆中。
5. 缓存计算结果:对于一些需要重复计算的结果,可以将其缓存起来以避免重复计算。
这可以通过使用HashMap或其他缓存机制来实现。
6.懒加载:延迟加载是一种在需要时才创建对象的技术。
这可以减少内存的使用和对象的创建时间,并提高代码的效率。
7. 使用并发集合:当多个线程同时访问和修改集合对象时,使用并发集合(如ConcurrentHashMap、CopyOnWriteArrayList等)可以提高代码效率和线程安全性。
8. 使用原生数据类型:原生数据类型(如int、float、long等)在处理大规模数据时比对象类型更高效。
避免将原生类型包装为对象类型,尽量使用原生类型进行计算。
9.避免使用过多的异常处理:异常处理是一种开销较高的操作。
在一些性能要求较高的场景中,尽量避免频繁抛出和捕获异常。
10.减少输入输出:输入输出(IO)是代码效率的一个瓶颈。
可以使用批量读写、缓冲流等技术来减少IO操作的次数。
Java数据结构与经典算法——高手必会

大O表示法:粗略的量度方法即算法的速度是如何与数据项的个数相关的 (2)排序 (2)优先级队列 (5)队列 (7)栈 (8)链表 (9)单链表 (11)双端链表 (14)有序链表 (16)双向链表 (18)实现二叉树前序遍历迭代器 (22)迭代器 (24)合并搜索算法 (27)希尔排序 (31)快速排序 (32)二叉树 (34)经典算法的Java实现 (39)(1)河内塔问题: (39)(2)费式数列 (40)(3)巴斯卡(Pascal)三角形 (40)(4)蒙地卡罗法求 PI (42)(5)最大公因数、最小公倍数 (43)(6)阿姆斯壮数 (43)(7)最大访客数 (44)(8)洗扑克牌(乱数排列) (45)(9)约瑟夫问题(Josephus Problem) (46)(10)排列组合 (48)(11)得分排行 (49)(12)选择、插入、气泡排序 (51)(13)快速排序(一) (54)(14)快速排序(二) (55)(15)快速排序(三) (56)(16)合并排序 (58)(17)基数排序 (59)(18)循序查找法(使用卫兵) (60)(20)插补查找法 (62)(21)费式查找法 (63)(22)稀疏矩阵 (65)(23)多维矩阵转一维矩阵 (67)(24)上三角、下三角、对称矩阵 (68)(25)奇数魔方阵 (69)(26)4N魔方阵 (70)(27)2(2n+1)魔方阵 (72)大O表示法:粗略的量度方法即算法的速度是如何与数据项的个数相关的算法大O表示法表示的运行时间线性查找 O(N)二分查找 O(logN)无序数组的插入 O(1)有序数组的插入 O(N)无序数组的删除 O(N)有序数组的删除 O(N)O(1)是最优秀的,O(logN)良好,O(N)还可以,O(N2)稍差(在冒泡法中见到)排序public class JWzw {//插入排序public void insertArray(Integer []in){int tem = 0;int num = 0;int upnum = 0;for (int i = 0; i 〈 in.length; i++) {for (int j = i - 1; j 〉= 0; j——){num++;if (in[j+1] < in[j]){tem = in[j+1];in[j+1] = in[j];in[j] = tem;upnum++;}else{break;}}}for(int i = 0; i < in.length; i++){System。
Java核心数据结构(List、Map、Set)原理与使用技巧

Java核⼼数据结构(List、Map、Set)原理与使⽤技巧JDK提供了⼀组主要的数据结构实现,如List、Set等常⽤数据结构。
这些数据都继承⾃java.util.Collection接⼝,并位于java.util包内。
⼀、List接⼝最重要的三种List接⼝实现:ArrayList、Vector、LinkedList。
它们的类图如下:可以看到,3种List均来⾃AbstratList的实现。
⽽AbstratList直接实现了List接⼝,并扩展⾃AbstratCollection。
ArrayList和Vector使⽤了数组实现,可以认为,ArrayList封装了对内部数组的操作。
⽐如向数组中添加、删除、插⼊新的元素或数组的扩展和重定义。
对ArrayList或者Vector的操作,等价于对内部对象数组的操作。
ArrayList和Vector⼏乎使⽤了相同的算法,它们的唯⼀区别可以认为是对多线程的⽀持。
ArrayList没有对⼀个⽅法做线程同步,因此不是线程安全的。
Vector中绝⼤多数⽅法都做了线程同步,是⼀种线程安全的实现。
因此ArrayList和Vector的性能特性相差⽆⼏。
LinkedList使⽤了循环双向链表数据结构。
LinkedList由⼀系列表项连接⽽成。
⼀个表项总是包含3个部分:元素内容、前驱表项和后驱表项。
如图所⽰:LinkedList的表项源码:private static class Node<E> {E item;Node<E> next;Node<E> prev;Node(Node<E> prev, E element, Node<E> next) {this.item = element;this.next = next;this.prev = prev;}}⽆论LinkedList是否为空,链表都有⼀个header表项,它既是链表的开始,也表⽰链表的结尾。
如何使用Java实现高效的数据结构

如何使用Java实现高效的数据结构Java是目前广泛使用的编程语言之一,因此很多程序员都在使用Java实现各种算法和数据结构。
在许多情况下,数据结构的实现对性能至关重要。
在本文中,我们将探讨如何使用Java实现高效的数据结构。
一、了解Java数据类型在使用Java实现数据结构时,首先要了解Java的数据类型及其特点。
Java提供了许多内置的数据类型,如整数类型、浮点类型、布尔类型、字符类型等。
Java中的数据类型都是类,而不像其他编程语言中的基本类型。
在Java中,类与对象的创建比较耗时,因此我们应该尽可能避免创建大量的对象。
例如,我们可以使用基本类型的数组来代替对象数组。
此外,Java中提供了一些基本的数据结构类,如ArrayList和LinkedList。
这些数据结构类可以方便地存储和管理数据,但在处理大量数据时会带来性能问题。
二、使用数组数组是最常见的数据结构之一,它可以直接存储原始类型,比如int和double,因此在实现高效的数据结构时,数组是首选的容器。
数组的优点是访问元素速度非常快,因为它们在内存中是连续的。
此外,数组的长度一旦确定,就不能再改变,因此在处理固定大小的数据时非常有用。
为了更好地利用数组,我们可以使用Java提供的一些Array类。
例如,我们可以使用Arrays.sort()方法对数组进行快速排序,这样可以大大提高排序的效率。
此外,Arrays.asList()方法可以将数组转换为List对象,这样可以方便地对数组进行操作。
三、使用HashMapHashMap是Java中常用的一种哈希表实现。
哈希表是一个非常有用的数据结构,它可以实现快速的插入和查找。
HashMap使用哈希函数将元素映射到数组中的位置,并且支持高效的插入、删除和查找操作。
在使用HashMap时,我们需要注意哈希函数的设计。
由于哈希表的性能与哈希函数的质量密切相关,因此我们应该选择一个好的哈希函数。
此外,在哈希表中使用链表解决冲突是一种常见的方法。
java数据结构之排序

java数据结构之排序写在前⾯的话:本篇⽂章是我⾃⼰阅读程杰⽼师的⼤话数据结构之后⾃⼰所做的总结,⽹上有很多关于排序的详细介绍,我推荐所写的⽂章,介绍的⾮常详细。
排序是我们在程序中经常要⽤到的⼀种算法,好的排序可以极⼤的提⾼我们的⼯作效率,本篇主要介绍⼏种常见的排序算法;(简单说明:下⾯的java程序是⽤来排序的,其中sum为排序数组,sum[0]不进⾏排序,只作为哨兵或者临时变量)1、冒泡排序:冒泡排序是⼀种交换排序,其的基本思想是:两两⽐较相邻记录的关键字,如果反序则交换,直到没有反序的记录为⽌。
1//冒泡排序2 最正宗的冒泡排序,i每循环⼀次,最⼩的数就像⽓泡⼀样慢慢浮到⽔⾯上2public static void BubbleSort_2(int[] num){3for(int i = 1; i < num.length; i++){4for(int j = num.length-1; j > i; j--){5if(num[j-1] > num[j]){6 Swap(num,j-1,j); //交换函数交换num[j-1]和num[j]的值7 }8 }9 }10 }2、选择排序:简单选择排序法(Simple Selection Sort)就是通过n-i次关键字间的⽐较,从n-i+1个记录中选出关键字最⼩的记录,并和第i(1≤i≤n)个记录交换之。
1//选择排序2public static void SelectSort(int[] num){3int min;4for(int i = 1; i < num.length; i++){5 min = i;6for(int j = i + 1; j <num.length; j++){7if(num[min] > num[j]){8 min = j;9 }10 }11if(i != min){12 Swap(num,i,min); //交换函数交换num[j-1]和num[j]的值13 }14 }15 }3、插⼊排序:直接插⼊排序(Straight Insertion Sort)的基本操作是将⼀个记录插⼊到已经排好序的有序表中,从⽽得到⼀个新的、记录数增1的有序表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。
A) (G) B) (D) C) C D) D
2、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列
C)顺序队列 D)链队列
3、下面关于线性表的叙述中,错误的是哪一个?( D )
A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
4、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。
当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)12
5、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( B )。
A)9 B)11 C)15 D)不能确定
6、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5
C)6 D)7
7、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。
A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
8、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
9、下面关于线性表的叙述中,错误的是哪一个?( D )
A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
10、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列
C)顺序队列 D)链队列
11、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为
( B )。
A) rear=rear->next; B) front=front->next;
C) rear=front->next; D) front=rear->next ;
12、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。
A)3,2,5,6,4,1 B)1,5,4,6,2,3
C)2,4,3,5,1,6 D)4,5,3,6,2,1
13、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。
A)3,2,5,6,4,1 B)1,5,4,6,2,3
C)2,4,3,5,1,6 D)4,5,3,6,2,1
14、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为( B )。
A) rear=rear->next; B) front=front->next;
C) rear=front->next; D) front=rear->next ;
15、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
16、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5
C)6 D)7
17、下列序列中,执行第一趟快速排序后得到的序列是( A )。
A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]
C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]。