2012浙江省JAVA版数据结构考资料
浙江工业大学2012-Java程序设计期终考卷(2010级计算机)
浙江工业大学期终考试命题稿2011 /2012 学年第一学期命题注意事项:一、命题稿请用A4纸电脑打印,或用教务处印刷的命题纸,并用黑墨水书写,保持字迹清晰,页码完整。
二、两份试题必须同等要求,卷面上不要注明A、B字样,由教务处抽定A、B卷。
三、命题稿必须经学院审核,并在考试前两周交教务处。
浙江工业大学2011/2012学年第一学期试卷课程JAVA程序设计姓名______________________ 班级______________________ 学号______________________ 授课教师___________________注:答案请写在答题纸上,否则一律不给分。
一、选择题(共15小题,每题2分,共30分)1、以下的变量定义语句中,合法的是( )A)double a= 1.0;B)char c= a+'1';C)double $a*5 =2.0D;D)String name#2 = "jack";2、以下程序片段,下列哪个选项插入到第1行引起编译错误的是()1) package mypackage;2)3) class MyClass4) {5) //do sth6) }A)public class MainClass{ }B)package mypackage1;C)class B{ }D)import java.util.*;3、以下程序代码,无法通过编译的是()A)class A{int i=0;public void method() { System.out.println (i); }}B)class A { int i=0; }class B{public void method() { System.out.println (new A().i); } }C)class A{public int i=0;public static void method() { System.out.println (new A().i); } }D)class A{public int i=0;public static void method() { System.out.println (i); } }4、以下代码段执行后的输出结果为()int x=2,y=3;System.out.println ((x>y)?x--:++y);A)1 B) 2 C) 3 D) 45、给定如下Java程序片断:class A{public A (){System.out.print("O");}}class B extends A{public B(){System.out.print("K");}public static void main(String[] args){B b=new B();}}上述程序将( )A) 不能通过编译B) 通过编译,执行后输出为:OC) 通过编译,执行后输出为:KD) 通过编译,执行后输出为:OK6、已知MyInterface是一个接口,ClassA是实现了MyInterface的一个类,ClassB是ClassA的子类,则下列哪个语句是正确的? ( )A) ClassB obj=new ClassA();B) MyInterface obj = new ClassB();C) ClassA obj=new MyInterface();D) MyInterface obj=new MyInterface();7、下列变量哪个是引用类型的( )。
全国计算机等级考试二级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)复习题及答案
一、选择题1、数据结构在计算机内存中的表示是指____A__A.数据的存储结构 B.数据结构C.数据的逻辑结构D.数据元素之间的关系2、若一个算法的时间复杂度用T(n)表示,其中n的含义是(A)A.问题规模B.语句条数C.循环层数D.函数数量3、下列选项中与数据存储结构无关的术语是(D)A.顺序表B.链表C.链队列D.栈4、已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则向队列中插入新元素时,修改指针的操作是(D)A.rear=(rear-1)%m;B.front=(front+1)%m;C.front=(front-1)%m;D.rear=(rear+1)%m;5、栈和队列的共同点是__C______A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点6、已知一堆栈的进栈序列为1234,则下列哪个序列为不可能的出栈序列______D__A.1234B.4321C.2143D.41237、具有线性结构的数据结构是(C)A.树B.图C.栈和队列D.广义表8、假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为(B)A.3B.37C.50D.979、若栈采用链式存储结构,则下列说法中正确的是(B)A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空10、若一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,则该二叉树一定是(C)A.结点均无左孩子的二叉树B.结点均无右孩子的二叉树C.高度为n的二叉树D.存在度为2的结点的二叉树11、若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是(B)A.4B.5C.7D.812、在n个结点的线索二叉树中,线索的数目为_C_______A.n-1 B.nC.n+1D.2n13、一棵完全二叉树有1001个结点,其中有____B_____叶子结点A.500B.501C.503D.50515、一个有n个顶点的无向图最多有___C____条边。
2012-2013数据结构
浙江大学2012–2013学年秋学期《数据结构基础》课程期末考试试卷(A) 课程号: 211C0020_,开课学院:_计算机科学与技术_考试试卷:√A卷、B卷(请在选定项上打√)考试形式:√闭、开卷(请在选定项上打√),允许带____无___入场考试日期: 2012 年 11 月 15 日,考试时间: 120 分钟诚信考试,沉着应考,杜绝违纪。
考生姓名:学号:所属院系: _Answer SheetNOTE: Please write your answers on the answer sheet.注意:请将答案填写在答题纸上。
I. Please select the answer for the following problems. (20 points)(1) Which one of the following statements is true as N grows?a. For any x , N x grows faster than !Nb. 2)(log N grows faster than Nc. 2log N grows faster than 2)(log Nd. N grows faster than 2)(log N N(2) What is the time complexity of the following function that computes X N ?long int Pow (long int X, unsigned int N) {if (N == 0) return 1;if (N == 1) return X;if (IsEven(N)) /* IsEven(N) returns 1 if N is even, or 0 otherwise */return Pow(X, N / 2) * Pow (X, N / 2);else return Pow(X * X, N / 2) * X;} a. O(N ) b. O(N log ) c. O(N N log ) d. O(N )(3) Suppose that N integers are pushed into and popped out of a stack. The input sequence is 1, 2, …, N and the output sequence is p 1, p 2, …, p N . If p 2 = 2, then p i (i>2) must be .a. ib. i+2c. N - id. cannot be determined(4) What is the major difference among lists, stacks, and queues? a. Lists use pointers, and stacks and queues use arraysb. Stacks and queues are lists with insertion/deletion constraintsc. Lists and queues can be implemented using circularly linked lists, but stacks cannotd. Stacks and queues are linear structures while lists are not(5) For an in-order threaded binary tree, if the pre-order and in-order traversal sequences are ABCDEF and CBAEDF respectively ,which pair nodes ’ right links are both threads?a. A and Bb. B and Dc. C and Dd. B and E(6) If N keys are hashed into the same slot, then to find these N keys, the minimum number of probes with linear probing is .a. N-1b. Nc. N(N+1)/2d. N+1(7) If an undirected graph with N vertices and E edges is represented by an adjacency matrix. How many zero elements are there in the matrix? a. E b. 2E c. N 2-E d. N 2-2E(8) If a directed graph is stored by an upper-triangular adjacency matrix –- that is, all the elements below the main diagonal are zero. Then its topological order .a. exists and must be uniqueb. exists but may not be uniquec. does not existd. cannot be determined(9)Sort a sequence of nine integers {4, 8, 3, 7, 9, 2, 10, 6, 5} by insertion sort. When 2 is moved to the first position, the number 8 must be at position (start from 1) .a. 4b. 5c. 6d. 7(10)Let T be a tree of N nodes created by union-by-height without path compression, then the depth of the tree isa. N/2b. O(logN)c. O(N2)d. O(1)II. Given the function descriptions of the following two (pseudo-code) programs, please fill in the blank lines. (21 points)(1)Bubble sort is a simple sorting algorithm. Suppose we have a list of integers and want to sort them in ascending order. Bubble sort repeatedly scans the list from the head to the tail, and swaps two adjacent numbers if they are in the wrong order. Please complete the following program to implement bubble sort. (12 points)struct node{int value;struct node *next;/* some other fields */}struct node BubbleSort (struct node *h){/* h is the head pointer of the list with a dummy head node */struct node *p, *q;int flag_swap;if (!h->next) return h;do{flag_swap = 0;p = h;while (p->next->next){if (① ){flag_swap++;q = p->next;② ;③ ;④ ;}else p = p->next;}} while (flag_swap > 0);return h;}(2)The function is to perform Find as a Union/Find operation with path compression. (9 points)SetType Find ( ElementType X, DisjSet S ){ElementType root, trail, lead;for ( root = X; S[ root ] > 0; ① );for ( trail = X; trail != root; ② ) {lead = S[ trail ] ;③ ;}return root ;}III. Please write or draw your answers for the following problems on the answer sheet. (44 points)(1) A sorting algorithm is stable if for any keys K i = K j for i < j,the corresponding records R i precedes R j in the sorted list.(a)Is Heap Sort stable? Please give a proof if your answer is“YES”, else please provide a counter example. (4 points)(b)Is Quick Sort stable? Please give a proof if your answer is“YES”, else please provide a counter example. (4 points)(2)Given the adjacency list representation of a directed graph.Suppose V1 is always the first vertex being visited. Please list(a)the depth-first search sequence; (5 points)(b)the breath-first search sequence; (5 points) and(c)the strongly connected components. (3 points)(3) A binary search tree is said to be of “type A”if all the keysalong the path from the root to any leaf node are in sorted order(either ascending or descending).(a)Given four keys {1, 2, 3, 4}, please draw all the possiblebinary search trees of type A. (4 points)(b)In general, given N keys {1, 2, …, N}, how many differentbinary search trees of type A can be constructed? (3 points)(4)Given a hash table of size 13 and the hash function H(key) = keymod 13. Assume that quadratic probing is used to solve collisions.Please fill in the hash table with input numbers {2, 15, 3, 16, 6,29, 24, 28}. (4 points)(5)Given eight keys {1, 2, …, 8}. Please do the following:(a)construct a complete binary tree which is also a binary searchtree; (5 points) and(b)construct a min-heap out of the array which stores thecomplete binary tree obtained from (a). Use BuildHeap with asequence of percolate-down’s. (4 points)(c)Observe the keys on each level of the min-heap obtained from(b). Is there a pattern of ordering? Is this true for moregeneral cases? (3 points)IV. Given a tree represented by left-child-right-sibling structure, please describe an algorithm that counts the number of leaf nodes on every level.(15 points)。
2012年浙江省数据结构试题集(10套题并附带答案)考资料
14、衡量查找算法效率的主要标准是( C )。
A)元素个数 B)所需的存储量
C)平均查找长度 D)算法难易程度
15、非空的循环单链表head的尾结点(由p所指向)满足 C 。
A.p->next == NULL B.p == NULL
1、在平衡二叉树中插入一个结点后造成不平衡,设最低的不平衡结点为A,并已知A的左孩子平衡因子为0,右孩子平衡因子为1,则应该做( )型调整以使其平衡
A LL B LR C RL D RR
2、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
B.{24,89,55,60,93,102}
C.{102,93,55,60,89,24}
D.{102,60。89,93,55,24}
20、向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
A.O(n) B.O(1)
C.O(n2) D.O(10g2n)
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
18、由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48
C. 72 D. 53
19、下列选项中,符合堆定义的是
A.{102,24,55,60,89,93}
10、6个顶点的强连通图中,含有的边数至少是
A.4 B.5 C.6 D.7
11、G是一个非连通无向图,共28条边,则该图至少有( )个顶点
A 6 B 7 C 8 D 9
12、不带头结点的单链表head为空的判定条件是 A 。
A.head == NULL B head->next ==NULL
java数据结构测试题及答案解析
Java数据结构试题及解析1 下列数据结构中,能用二分法进行查找的是__A____。
A、顺序存储的有序线性表B、线性链表C、二叉链表D、有序线性链表解析:二分法查找只适用于顺序存储的有序表。
在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)。
2 在软件设计中,不属于过程设计工具的是__D____。
A、PDL(过程设计语言)B、PAD图C、N-S图D、DFD图解析:软件设计工具包括:程序流程图、N-S、PAD、HIPO,判定表,PDL(伪码)。
而DFD(数据流图)属于结构化分析工具。
3 在switch(expression)语句中,expression的数据类型不能是__A____。
A、doubleB、charC、byteD、short解析:表达式expression只能返回这个几种类型的值:int、byte、short和char。
多分支语句把表达式返回的值依次与每个case子句中的值相比较,如果遇到匹配的值,则执行该case子句后的语句序列。
4 下列叙述中,错误的是__D____。
A、父类不能替代子类B、子类能够替代父类C、子类继承父类D、父类包含子类5 通过继承实现代码复用:Java中所有的类都是通过直接或间接地继承ng.Object类得到的。
继承而得到的类称为子类,被继承的类称为父类。
子类不能继承父类中访问权限为private的成员变量和方法,子类可以重写父类的方法,及命名与父类同名的成员变量。
子类通过隐藏父类的成员变量和重写父类的方法,把父类的状态和行为改变为自身的状态和行为。
注意:子类中重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同。
由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。
程序中凡是使用父类对象的地方,都可以用子类对象来代替。
一个对象可以通过引用子类的实例来调用子类的方法。
2012浙江省数据结构最新考试试题库(完整版)
6、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)12
C) 双链表 D) 仅有尾指针的单循环链表
15、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
12、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。这样的排序方法是( A )。
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
13、线索二叉树中某结点D,没有左孩子的条件是( B )。
7、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。这样的排序方法是( A )。
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
8、n个顶点的强连通图至少有( A )条边。
C)2,4,3,5,1,6 D)4,5,3,6,2,1
27、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为( B )。
A) rear=rear->next; B) front=front->next;
C) rear=front->next; D) front=rear->next ;
2012年浙江理工大学研究生考试《数据结构与数据库技术》真题
考试科目:数据结构与数据库技术代码:9381234 758961234758963.已知单链表结构如下所示,头结点指针为head ,关键字域为key 。
试编写一个程序,采用单链表作为存储结构实现简单(直接)选择排序算法,并阐述该算法的时间复杂度与稳定性。
(本题25分)分) typedef struct node { int key; struct node *next; } lnode; 4.已知哈希(Hash )函数H(k)=k%p (k 为线性表的关键字),用开放地址法处理冲突,其中:d 1=H(k),d i =(d i-1+m)%p (i=2,3,…);试编写程序算法,在H[0~p-1]的散列地址空间中,地址空间中,对关键字序列对关键字序列a[0],a[1],…,a[p a[0],a[1],…,a[p-1]-1]构造哈希表构造哈希表(假设每个关键字最终都能(假设每个关键字最终都能找到地址),并计算输出在等概率情况下查找成功的平均查找长度。
(20分)第二部分:数据库技术(本部分共60分)二、解答题(下面10个小题中任选6小题解答,每小题10分,按得分最多的6小题计算分数,本题得分最多不超过60分)数据库Sales 用来存放某企业销售数据,用来存放某企业销售数据,它有它有4张表,张表,表表Products 用来存储产品基本信息;表Customers 用来存储客户基本信息;表Orders 用来存放订单信息;OrderItems 用来存放订单明细信息。
这4张表的结构如下:张表的结构如下:1. Products 表结构:表结构:列名类型 长度 规则 中文说明 ProductID 数值型数值型 8 主键主键 产品编码产品编码 ProductName 字符型字符型 30 非空非空 产品名称产品名称 Category 字符型字符型 20 非空 产品类别产品类别 QuantityPerUnit 字符型字符型 20 非空 规格型号规格型号 UnitPrice 数值型数值型8, 2 成本单价成本单价Products 表记录举例:表记录举例:ProductID ProductName Category QuantityPerUnit UnitPrice 1 Chai Beverages 10 boxes x 20 bags 18.20 2 Chang Beverages 24 – 12 oz bottles 19.50 3 Aniseed Syrup Condiments 12 – 550 ml bottles 10.25 4 Chef Anton’s Gumbo MixCondiments 36 boxes 21.35 5 Northwoods Cranberry Sauce Condiments 12 – 12 oz jars 40.00 6 Genen Shouyu Condiments 24 – 250 ml bottles 15.50 … …… … … 77 Escargots de Bourgogne Seafood 24 pieces 13.25 2. Customers表结构:表结构:列名类型长度规则中文说明CustomerID 字符型5 主键客户编码主键 客户编码CustomerName 字符型50 非空客户名称非空 客户名称Address 字符型60 单位地址单位地址 City 字符型20 所在城市所在城市 Customers表记录举例:表记录举例:CustomerID CustomerName Address City ALFKI Alfreds Futterkiste Obere Str. 57 Berlin n 222 MéANATR Ana Trujillo Emparedados y helados Avda. De la Constitución 222 xico D.F. México D.F. ANTON Antonio Moreno Taquería a Mataderos 2312 México D.F. México D.F. AROUT Around the Horn 120 Hanover Sq. London …………3. Orders表结构:表结构:列名类型长度规则中文说明OrderID 数值型订单编号数值型 8 主键主键 订单编号CustomerID字符型非空,外键 客户编码客户编码字符型 5 非空,外键OrderDate日期型订单日期日期型 8 非空订单日期RequiredDate日期型要货日期日期型 8 非空要货日期ShippedDate日期型发货日期日期型 8 非空发货日期Orders表记录举例:表记录举例:OrderID CustomerID OrderDate RequiredDate ShippedDate 10248 VINET 2006-07-04 2006-08-01 2006-07-26 10249 TOMSP 2006-07-05 2006-08-16 2006-07-30 10250 HANAR 2006-08-08 2006-09-05 2006-09-03 10251 VINET 2006-08-11 2006-09-15 2006-09-12 ……………4. OrderItems表结构:表结构:列名类型长度规则中文说明OrderID 数值型数值型 8 外键订单编号外键 订单编号ProductID数值型产品编码外键 产品编码数值型 8 外键UnitPrice数值型销售单价 数值型 8,2 两位小数,单价大于0销售单价Quantity数值型销售数量 数值型 8 非空,默认为0销售数量Amount 数值型销售额 数值型 12,2 计算列(=unitprice*quantity)销售额OrderItems表记录举例:表记录举例:OrderID ProductID UnitPrice Quantity Amount 10248 11 14 12.5 175.00 10248 42 9 10.4 93.60 10248 72 34 5.6 190.40 10249 14 18 9.5 171.00 10249 51 42 40.45 1698.90 10250 41 7 10.25 71.75 10250 51 42 35.25 1480.50 ……………1. 使用SQL语句,完成以下各项功能(注:必要时一个小题可以用多条语句去实现):1)根据产品表Products中数据,列出单价排名最贵的前5个产品的名称及其单价。
2012下半年JAVA真题
2012年(下)全国信息技术水平考试计算机程序设计技术水平证书(JAVA语言)考试试卷第一大题:单选题(30 分)1. (1分) 下列选项中不是合法Java标识符的是( C )。
(A) ab (B) $_3 (C) 3ab (D) ab322. (1分)若有定义int a=2,b=4;boolean x;则执行语句 x=a>b;System.out.println(x);的结果为( D )。
(A) 1 (B) 0 (C) true (D) false3. (1分)若有定义int x=3,y;则执行语句y=(++x)+(++x)+(++x);后y的值是( D )。
(A) 12(B) 18 (C) 9 (D) 154. (1分) 若a是int型变量,计算表达式a=25/3%3后,a为( B )。
(A) 1 (B) 2(C) 3 (D) 45. (1分) 关于代码行int []arr={1,2,3}; for(int i=0;i<2;i++) arr[i]=0 ;下列表达式中值为true的是( A )。
(A) arr[0]==0 (B) arr[0]==01 (C) arr[1]==1 (D) arr[2]==06. (1分) 下列选项中,属于接口中方法默认的访问控制方式的是( A )。
(A) public (B) private (C) protected (D) default7 . (1分)若要在容器底端放一个按钮,且不管用户如何改变尺寸,则下列布局管理器中最简单的是( A )。
(A) BorderLayout (B) GridLayout (C) FlowLayout(D) GridbagLayout8 . (1分) 要使一个线程放弃处理器,且休眠1.5秒,应调用的方法是( B )。
(A) sleep(1.5) (B) sleep(1500) (C) suspend(1.5)(D) suspend(1500)9. (1分) 用套接字方法建立两个程序的通信后,如果双方通信完毕,应( C )。
2010浙江省JAVA版数据结构一点通科目一
31、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。
A)loc(A1)+i*c B)loc(A1)+(i-1)*c
C)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c
8、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
9、数据结构研究的内容是( D )。
C)部分地址必须是连续 D)必须是不连续的
40、串的逻辑结构与( D )的逻辑结构不同。
A)线性表 B)栈
C)队列 D)树
41、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( 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]
19、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
11、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。
A) A, B, C, D, E
B) B, C, D, E, A
C) E, A, B, C, D
D) E, D, C, B, A
12、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。
数据结构复习资料,java数据结构期末考试
第二章算法分析1.算法分析是计算机科学的基础2.增长函数表示问题(n)大小与我们希望最优化的值之间的关系。
该函数表示了该算法的时间复杂度或空间复杂度。
增长函数表示与该问题大小相对应的时间或空间的使用3.渐进复杂度:随着n的增加时增长函数的一般性质,这一特性基于该表达式的主项,即n 增加时表达式中增长最快的那一项。
4.渐进复杂度称为算法的阶次,算法的阶次是忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出来的。
算法的阶次为增长函数提供了一个上界。
5.渐进复杂度:增长函数的界限,由增长函数的主项确定的。
渐进复杂度类似的函数,归为相同类型的函数。
6.只有可运行的语句才会增加时间复杂度。
7. O() 或者大O记法:与问题大小无关、执行时间恒定的增长函数称为具有O(1)的复杂8.所有具有相同阶次的算法,从运行效率的角度来说都是等价的。
9.如果算法的运行效率低,从长远来说,使用更快的处理器也无济于事。
10.要分析循环运行,首先要确定该循环体的阶次n,然后用该循环要运行的次数乘以它。
(n表示的是问题的大小)11.分析嵌套循环的复杂度时,必须将内层和外层循环都考虑进来。
12.方法调用的复杂度分析:如:public void printsum(int count){int sum = 0 ;for (int I = 1 ; I < count ; I++)sum += I ;System.out.println(sun);}printsum方法的复杂度为O(n),计算调用该方法的初始循环的时间复杂度,只需把printsum方法的复杂度乘以该循环运行的次数即可。
所以调用上面实现的printsum方法的复杂度为O(n2)。
13指数函数增长 > 幂函数增长 > 对数函数增长第三章集合概述——栈1.集合是一种聚集、组织了其他对象的对象。
它定义了一种特定的方式,可以访问、管理所包含的对象(称为该集合的元素)。
《数据结构(Java版)(第4版)》样卷及答案
//将 s 中所有空格删除,返回操作后的 s 串
{
int i=0; while (i<s.length() && s.charAt(i)!=' ')
//i 记住第 1 个空格下标
i++;
for (int j=i; j<s.length(); j++) if (s.charAt(j)!=' ') s.setCharAt(i++, s.charAt(j));
String target="aababbabac", pattern="ab", str="aba";
System.out.println("\""+target+"\".replaceAll(\""+pattern+"\", \""+str+"\")=\""+
target.replaceAll(pattern,str)+"\"");
5. mat+(i*n+j)*4=1000+(4*8+5)*4=1148 6. n*(n-1)/2 7. {43,61*,72,96};{43,17,20,32}。解释见《习题解答》第 54 页习 8-9。 8. 见《数据结构(Java 版)(第 4 版)习题解答》第 57 页习 9-4。
二、 问答题(50 分=5 分×10 题)
Java基础面试题(2012完整版)
第一部分 Java的类1.请解释Java语言的跨平台特性。
解析:虽然不知道什么是跨平台也可以使用Java语言进行编程,但是对于一个Java编程员来说,理解跨平台特性能够更深入掌握Java语言,所以企业中往往要求应聘者至少理解这个特性。
参考答案:Java的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。
他的意思就是如果用Java语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。
之所以能实现跨平台的特性。
主要得益于Java虚拟机(JVM),JVM 解释器在运行Java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所以可以实现同样的应用在不同平台上都能运行。
2.请列举JAVA语言的主要特点解析:了解一门语言,往往从熟悉该语言的主要特点开始入手,所以企业也常常通过应聘者对JAVA语言特点的掌握程度而判断其语言基础是否扎实。
参考答案:JAVA语言有很多特点,主要包括①跨平台性:一个应用可以不经过修改直接运行到不同的平台上。
②面向对象:JAVA语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。
③解释执行JAVA应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。
④自动回收:JAVA应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。
3.请说明一个JAVA类中主要包含哪几个元素?并说明每种元素的作用。
解析:无论简单还是复杂的JAVA应用,都是由若干个类组成,所以类是JAVA应用的组成单位。
了解一个类中包含的主要元素能够对类有一个清晰的认识。
一个类中往往会有五种元素,即属性、方法、构造方法、块以及内部类、其实块和内部类比较少见。
参考答案:JAVA类中主要包含属性、方法、构造方法、块以及内部类。
属性用来定义对象的数据;方法用来定义对象的行为;构造方法可以用来创建对象;块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;内部类作为类的一个成员存在,能够访问外部类的属性和方法。
2012数据结构_习题及程序设计整理
第二章1、首尾顺序逆置2、找出顺序表中最大值和最小值及位置3、头插法算法4、尾插法:5、带头结点的单链表,向表头插入一个结点:6、单链表中查找第i个结点:8、单链表删除操作:9、重要习题,头结点与尾结点互换:10、重要习题,一个单链表拆为两个奇偶单链表:试写一个算法,将一个头结点为a的带头结点的单链表A分解成两个单链表A和B,其中头结点指针分别为a和b,使得A链表中含有原链表A中序号为奇数的元素,而B链表中含有原链表中序号为偶数的元素,并保持原来的相对顺序。
11、循环链表插入结点后仍然保持有序:12、重要习题(删除表中所有数值相同的多余元素):13、双向链表的删除操作:14、双向链表的插入操作:在带头结点的双向循环链表中插入一个新结点,需要修改的指针数量是4个。
包括新插入的新结点的指针,还有插入结点的前面结点的next域,和后面结点的prior域。
第二章课后习题14、设计两个顺序表A和B,且都递增有序,试写一算法,从A中删除与B中相同的元素(也就是计算A-B)。
15、已知head P指向结点与其后继结点位置交换。
(q为p的后继结点,s r16、已知两个单链表A和B分别表示两个集合,其元素值递增有序,试写一算法,求A和B的交集C,要求C同样以元素递增的单链表形式存储。
r=head; 查找p的前趋结点y的结点。
第三章一、队列算法f31的功能是清空带头结点的链队列Q,请填空。
Type struct node{ DataType data;Struct node *next;}QueueNode;{QueueNode *front; //队头指针二、填空题15、如果编号为1,2,3的3辆列车进入一个栈式结构的站台,那么可能得到的3辆车出站序列有哪些?不可能出现的序列是什么?16、简述下列程序算法的功能(假设元素为整数类型)(1) void ex31(SeqStack *S){int A[80],i,n;n=0;while(!empty(S)){ A[n]=pop[S];n++;}for(i=0;i<n;i++)push(S,A[i]);}答案:此算法功能是通过一个数组将一个栈中的所有元素逆置存放。
12浙江理工数据结构试题
浙 江 理 工 大 学二O一二年硕士学位研究生招生入学考试试题考试科目:数据结构 代码:991 (请考生在答题纸上答题,在此试题纸上答题无效)一、单选题(每题2分,共20分)1. 不带头结点的单链表simpleList为空的判定条件是。
A. simpleList == nullB. simpleList->next == nullC. simpleList->next = simpleListD. simpleList! = null2. 某线性表最常用的操作是在最后一个结点之后插入一个结点或删除第一个结点,故采用_______________存储方式最节省运算时间。
A. 单链表B. 仅有头结点的单循环链表C. 双链表D. 仅有尾指针的单循环链表3. 向一个栈顶指针为top的链栈中插入一个S所指结点时,则执行_______________________。
A. top->next = S;B. S->next = top->next; top->next = S;C. S->next = top; top = S;D. S->next = top; top = top->next;4. 一维数组和线性表的区别是_____________。
A. 前者长度固定,后者长度可变B. 后者长度固定,前者长度可变C. 两者长度均固定D. 两者长度均可变5. 设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数组B[1, n(n-1)/2]中,对任一下三角部分中任一元素a ij(),在一组数组B的下标位置K的值是______。
A. i(i-1)/2+j-1B. i(i-1)/2+jC. i(i+1)/2+j-1D. i(i+1)/2+j6.在线索化二叉树中,P所指的结点没有左子树的充要条件是_______________________。
数据结构(Java版)-习题解答与实验指导
数据结构(Java版)习题解答与实验指导目录第1章绪论 (1)1.1 数据结构的基本概念 (1)1.2 算法 (2)第2章线性表 (3)2.1 线性表抽象数据类型 (3)2.2 线性表的顺序存储和实现 (4)2.2.1 线性表的顺序存储结构 (4)2.2.2 顺序表 (5)2.2.3 排序顺序表 (7)2.3 线性表的链式存储和实现 (9)2.3.1 单链表 (9)【习题2-8】单链表结点类问题讨论。
(9)【习2.1】使用单链表求解Josephus环问题。
(12)【习2.2】集合并运算,单链表深拷贝的应用。
(14)2.3.2 双链表 (16)【习2.3】循环双链表的迭代方法。
(19)【习2.4】循环双链表合并连接。
(19)第3章串 (21)3.1 串抽象数据类型 (21)3.2 串的存储和实现 (22)3.2.1 串的存储结构 (22)3.2.2 常量字符串类 (22)【习3.1】C/C++语言,string.h中的strcpy()和strcat()函数存在下标越界错误。
(22)【思考题3-1】逆转String串,分析算法效率。
(24)【实验题3-1】MyString类,比较串大小,忽略字母大小写。
25【例3.2思考题3-2】MyInteger整数类,返回value的radix进制原码字符串。
(26)【实验题3-9】浮点数类。
(27)3.2.3 变量字符串类 (30)【实验题3-11】删除变量串中的所有空格。
4-样卷 (30)3.3 串的模式匹配 (31)3.3.1 Brute-Force模式匹配算法 (31)3.3.2 模式匹配应用 (32)【思考题3-4,实验题3-13】MyString类,replaceAll(pattern,s)改错。
(32)3.3.3 KMP模式匹配算法 (33)第4章栈和队列 (36)4.1 栈 (36)4.2 队列 (38)4.3 递归 (41)【习4.1】打印数字塔。
数据结构(Java)复习题及答案 1绪论
一、单项选择题( B )1. 计算机算法必须具备输入、输出和 等5个特性。
A) 可行性、可移植性和可扩充性 B) 可行性、确定性和有穷性C) 确定性、有穷性和稳定性 D) 易读性、稳定性和安全性( C )2. 数据结构中,与所使用的计算机无关的是数据的 结构;A) 存储 B) 物理 C) 逻辑 D) 物理和存储( C )3. 算法分析的目的是:A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性( A )4. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性 B) 正确性和简明性C) 可读性和文档性 D) 数据复杂性和程序复杂性( C )5. 计算机算法指的是:A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法6.数据结构是研究数据的(A)和(B)以及它们之间的相互关系,并对这种结构定义相应的 (C),设计出相应的(D),从而确保经过这些运算后所得到的新结构是(E)结构类型。
供选择的答案A.B: 1.理想结构 2.抽象结构 3.物理结构 4逻辑结构C.D.E: 1.运算 2.算法 3.结构 4.规则 5.现在的 6.原来的解答:341267.(A)是描述客观事物的数、字符以及所有能输入到计算机中被计算机程序加工处理的符号的结合。
(B)是数据的基本单位,即数据结合中的个体。
有时一个(B)由若干个 (C)组成,在这种情况下,称(B)为记录。
(C)是数据的最小单位。
(D)是具有相同特性的数据元素的集合。
(E)是带有结构特性的数据元素的结合。
被计算机加工的数据元素不是孤立无关的,它们彼此之间一般存在着某种联系,通常将数据元素的这种联系关系称为 (G)。
算法的计算量和问题规模的联系用(H)表示。
供选择的答案:A-F: 1.数据元素 2.符号 3.记录 4.文件 5.数据 6.数据项 7.数据对象 8.关键字 9.数据结构G: 1.规则 2.集合 3.结构 4.运算H: 1.现实性 2.难度 3.复杂性 4.效率解答:5167933二、判断题1, 数据元素是数据的最小单位。
2012数据结构题资料
●__(4)__的特点是数据结构中元素的存储地址与其关键字之间存在某种映射关系。
(4)A.树形存储结构B.链式存储结构C.索引存储结构D.散列存储结构●若循环队列以数组 Q[O..m-1] 作为其存储结构变量 rear 表示循环队列中队尾元素的实际位置,其移动按 rear=(rear+1) mod m 进行,变量 length 表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是__(5)__。
(5)A.rear-length B.(rear-length+m) mod mC.(1+rear+m-length) mod m D.m-length●一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有__(6)__个零元素。
(6)A.e B.2e C.n2-e D.n2-2e●若一棵哈夫曼(Huffman)树共有9个顶点,则其叶子结点的个数为__(7)__。
(7)A.4 B.5 C.6 D.7●若采用邻接矩阵来存储简单有向图,则其某一个顶点i的入度等于该矩阵__(8)__。
(8)A.第i行中值为1的元素个数 B.所有值为1的元素总数C.第i行及第i列中值为1的元素总个数D.第i列中值为1的元素个数●在—棵度为3的树中,若有2个度为3的结点,有1个度为2的结点,则有__(9)__个度为0的结点。
(9)A.4 B.5 C.6 D.7●设结点x和y是二叉树中任意的两个结点,在该二叉树的先根遍历序列中x在y之前,而在其后根遍历序列中x在y之后,则x和y的关系是__(10)__。
(10)A.x是y的左兄弟B.x是y的右兄弟C.x是y的祖先D.x是y的后裔●设顺序存储的某线性表共有123个元素,按分块查找的要求等分为3块。
若对索引表采用顺序查找方法来确定子块,且在确定的子块中也采用顺序查找方法,则在等概率的情况下,分块查找成功的平均查找长度为__(11)__。
(11)A.21 B.23 C.41 D.62DCDBDCCB(顺序查找平均查找长度是:(n+1)/2 (1+3)/2+(41+1)/2=23 123/3=41)●在一棵完全二叉树中,其根的序号为1,_(33)_可判定序号为p和q的两个结点是否在同一层。
java数据结构期末考试题及答案
java数据结构期末考试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个类是实现了List接口的?A. ArrayListB. LinkedListC. HashSetD. TreeMap答案:A、B2. 以下哪个方法用于在ArrayList中添加元素?A. add(E e)B. put(E key, V value)C. insert(int index, E element)D. append(E element)答案:A3. 在Java中,哪个类实现了Map接口?A. ArrayListB. HashMapC. HashSetD. LinkedList答案:B4. 以下哪个排序算法的时间复杂度为O(nlogn)?A. 冒泡排序B. 快速排序C. 选择排序D. 插入排序答案:B5. 在Java中,哪个类提供了优先队列的功能?A. PriorityQueueB. LinkedListC. StackD. TreeSet答案:A6. 在Java中,以下哪个方法用于删除LinkedList中的元素?A. remove(Object o)B. poll()C. pop()D. dequeue()答案:A、B7. 在Java中,以下哪个类实现了Set接口?A. ArrayListB. HashSetC. HashMapD. LinkedList答案:B8. 在Java中,哪个类提供了栈的功能?A. StackB. LinkedListC. PriorityQueueD. TreeSet答案:A9. 在Java中,以下哪个方法用于在HashMap中添加键值对?A. add(K key, V value)B. put(K key, V value)C. insert(K key, V value)D. append(K key, V value)答案:B10. 在Java中,以下哪个类实现了SortedSet接口?A. TreeSetB. HashSetC. LinkedHashSetD. ArrayList答案:A二、填空题(每题2分,共20分)1. 在Java中,______类实现了List接口,允许对元素进行索引访问。
2012浙江省数据简介入门
1、对一般二叉树,仅根据一个先序、中序、后序遍历,不能确定另一个遍历序列。
但对于满二叉树,任一结点的左右子树均含有数量相等的结点,根据此性质,可将任一遍历序列转为另一遍历序列(即任一遍历序列均可确定一棵二叉树)。
void PreToPost(ElemType pre[] ,post[],int l1,h1,l2,h2)//将满二叉树的先序序列转为后序序列,l1,h1,l2,h2是序列初始和最后结点的下标。
{if(h1>=l1){post[h2]=pre[l1]; //根结点half=(h1-l1)/2; //左或右子树的结点数PreToPost(pre,post,l1+1,l1+half,l2,l2+half-1) //将左子树先序序列转为后序序列PreToPost(pre,post,l1+half+1,h1,l2+half,h2-1) //将右子树先序序列转为后序序列} }//PreToPost32. .叶子结点只有在遍历中才能知道,这里使用中序递归遍历。
设置前驱结点指针pre,初始为空。
第一个叶子结点由指针head指向,遍历到叶子结点时,就将它前驱的rchild指针指向它,最后叶子结点的rchild为空。
LinkedList head,pre=null; //全局变量LinkedList InOrder(BiTree bt)//中序遍历二叉树bt,将叶子结点从左到右链成一个单链表,表头指针为head{if(bt){InOrder(bt->lchild); //中序遍历左子树if(bt->lchild==null && bt->rchild==null) //叶子结点if(pre==null) {head=bt; pre=bt;} //处理第一个叶子结点else{pre->rchild=bt; pre=bt; } //将叶子结点链入链表InOrder(bt->rchild); //中序遍历左子树pre->rchild=null; //设置链表尾}return(head); } //InOrder时间复杂度为O(n),辅助变量使用head和pre,栈空间复杂度O(n)2、设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
35、下面关于线性表的叙述中,错误的是哪一个?( D )
A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元。
B) B, C, D, E, A
C) E, A, B, C, D
D) E, D, C, B, A
23、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
C)p->next=s->next; s->next=p D)p->next=s; s->next=q;
13、与无向图相关的术语有( C )。
A)强连通图 B)入度
C)路径 D)弧
14、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。这样的排序方法是( A )。
A)top不变 B)top=0 C)top-- D)top++
17、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
C)队列 D)树
10、下列序列中,执行第一趟快速排序后得到的序列是( 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]
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
15、n个顶点的强连通图至少有( A )条边。
A)n B)n+1 C)n-1 D)n(n-1)
16、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。
C)顺序队列 D)链队列
32、在数据结构中,从逻辑上可以把数据结构分为( C )。
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
33、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则d(Tail(Head(Tail(Tail(L)))))
30、串的逻辑结构与( D )的逻辑结构不相同。
A)线性表 B)栈
C)队列 D)集合
31、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列
4、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5
C)6 D)7
5、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。
A)loc(A1)+i*c B)loc(A1)+(i-1)*c
C)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c
26、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
27、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。
A) A, B, C, D, E
B) B, C, D, E, A
C) E, A, B, C, D
D) E, D, C, B, A
C) Head(Tail(Head(Tail(L))))
D)Head(Tail(Head(Tail(Tail(L)))))
18、向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( D )。
A) hs->next=s; B) s->next=hs->next; hs->next=s;
20、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。
A) A, B, C, D, E
B) B, C, D, E, A
C) E, A, B, C, D
D) E, D, C, B, A
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
38、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。
A) A, B, C, D, E
B) B, C, D, E, A
29、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
C) Head(Tail(Head(Tail(L))))
D)线性表采用顺序存储,便于进行插入和删除操作。
36、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
37、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。这样的排序方法是( A )。
A) (G) B) (D) C) C D) D
6、n个顶点的强连通图至少有( A )条边。
A)n B)n+1 C)n-1 D)n(n-1)
7、与无向图相关的术语有( C )。
A)强连通图 B)入度
C)路径 D)弧
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
42、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。
A)顺序表 B)双链表 C)带头结点的双循环链表 D)单循环链表
A) 单链表 B) 仅有头指针的单循环链表
C) 双链表 D) 仅有尾指针的单循环链表
34、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5
A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
41、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。这样的排序方法是( A )。
21、队列的操作的原则是( A )。
A)先进先出 B) 后进先出
C) 只能进行插入 D) 只能进行删除
22、设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列是( C )。
A) A, B, C, D, E
C) E, A, B, C, D
D) E, D, C, B, A
39、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
40、下面关于线性表的叙述中,错误的是哪一个?( D )
24、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
25、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。
11、n个顶点的强连通图至少有( A )条边。
A)n B)n+1 C)n-1 D)n(n-1)
12、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A ) 。
A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;
1、以下属于顺序存储结构优点的是( A )。
A) 存储密度大 B) 插入运算方便
C)删除运算方便 D)可方便地用于各种逻辑结构的存储表示
2、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。
A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
3、广义表head(((a,b),(c,d)))的运算结果为( A )。
A)(a,b) B)(c,d)
C)空表 D)((a,b),(c,d))
8、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)12
9、串的逻辑结构与( D )的逻辑结构不同。
A)线性表 B)栈
C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next;
19、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a??11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( B )。
A)13 B)33 C)18 D)40
28、下面程序段的时间复杂度是( A )。
s =0;
for( i =0; i<n; i++)