数据结构复习资料,java数据结构期末考试

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
压入栈中的,这是因为栈被设计为存储对象的。注意:第一个弹出的操作数是表达式的第二
个操作数,第二个弹出的操作数是表达式的第一个操作数。
23.Javadoc注释以/**开始,以*/结束。Javadoc标签用于标识特定类型的信息。@auther
标签用于标识编写代码的程序员。@version标签用于制定代码的版本号。@return标签用于
可以在不同地点引用不同类型的对象。继承可用于创建一个类层次,其中,一个引用变量可
用于只想与之相关的任意对象。类层次:通过继承创建的类之间的关系,某个类的子类可以
成为其他类的父类
17•一个Object引用可用于引用任意对象,因为所有类最终都是从Object类派生而来的。
18•泛型,用泛型定义类:使这个类能存储、操作和管理在实例化之前没有指定是何种类型 的对象。
4•渐进复杂度称为算法的阶次,算法的阶次是忽略该算法的增长函数中的常量和其他次要
项,只保留主项而得出来的。算法的阶次为增长函数提供了一个上界。
5•渐进复杂度:增长函数的界限,由增长函数的主项确定的。渐进复杂度类似的函数,归为 相同类型的函数。
6•只有可运行的语句才会增加ቤተ መጻሕፍቲ ባይዱ间复杂度。
7.0()或者大0记法:与问题大小无关、执行时间恒定的增长函数称为具有0(1)的复
用于颠倒顺序(如一个取消操作)。
12.通常垂直的绘制栈,栈的末端称为栈的顶部,元素的添加和删除在顶部进行。
13•如果pop或者peek可作用于空栈,那么栈的任何实现都要抛出一个异常。集合的作用不 是去确定如何处理这个异常,而是把它报告给使用该栈的应用程序。在栈中没有满栈的概念,
应由栈来管理它自己的存储空间。
表明该方法的返回值。@param标签用于标识传递给该方法的每个参数。
24.异常就是一个对象,它被定义了一种非正常或错误的情况。异常由程序或运行时环境抛
杂度。
增长函数
阶次
t(n)=17
0(1)
t(n )=3log n
0(log n)
t(n )=20 n-4
0(n)
t(n )=12n log n+100 n
0(n log n)
2
2
t(n)=3n+5n-2
0(n)
32
3
t( n)=8n+3n
0(n)
n2
n
t(n)=2+18n+3n
0(2)
8•所有具有相同阶次的算法,从运行效率的角度来说都是等价的。
第二章算法分析
1•算法分析是计算机科学的基础
2•增长函数表示问题(n)大小与我们希望最优化的值之间的关系。该函数表示了该算法的 时间复杂度或空间复杂度。增长函数表示与该问题大小相对应的时间或空间的使用
3•渐进复杂度:随着n的增加时增长函数的一般性质,这一特性基于该表达式的主项,即n
增加时表达式中增长最快的那一项。
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.pri ntln(sun);
}
printsum方法的复杂度为O(n),计算调用该方法的初始循环的时间复杂度,只需把
printsum方法的复杂度乘以该循环运行的次数即可。所以调用上面实现的printsum方法的复
亠、,2杂度为o(n)。
13指数函数增长>幕函数增长>对数函数增长 第三章集合概述一一栈
1•集合是一种聚集、组织了其他对象的对象。它定义了一种特定的方式,可以访问、管理所 包含的对象(称为该集合的元素)。集合的使用者一一通常是软件系统中的另一个类或对象只能通过这些预定的方式与该集合进行交互。
2•集合可分为线性集合和非线性集合。线性集合是一种元素按直线方式组织的集合。非线性 集合是一种元素按某种非直线方式组织的集合,例如按层次组织或按网状组织。从这种意义
上来说,非线性集合也许根本就没有任何组织形式。
3•集合中的元素通常是按照它们添加到集合的顺序,或者是按元素之间的某种内在关系来组
织的。
4•抽象能隐藏某些细节。
5•集合是一种隐藏了实现细节的抽象。
6•对象是用于创建集合一种完美机制,因为只要设计正确,对象的内部工作对系统其他部分 而言是被封装的。几乎在所有情况下,在类中定义的实例变量的可见性都应声明为私有的
19•泛型不能被实例化。它只是一个占位符,允许我们去定义管理特定类型的对象的类,且 只有当该类被实例化时,才创建该类的对象。
20•计算后缀表达式:从左到右扫描,把每个操作符应用到其之前的两个紧邻操作数,并用 该计算结果代替该操作符。
21.栈是用于计算后缀表达式的理想数据结构。
22.用栈计算后缀表达式时,操作数是作为一个Integer对象而不是作为一个int基本数值被
14.栈的toString()操作可以在不修改栈的情况下遍历和现实栈的内容,对调试非常有用。
15•类型兼容性是指把一个对象赋给引用的特定赋值是否合法。
16•继承就是通过某个现有类派生出一个新类的过程。多态:使得一个引用可以多次指向相
关但不同的对象类型,且其中调用的方法是在运行时与代码。多态引用是一个引用变量, 它
9•数据结构是一种用于实现集合的基本编程结构。
10.Java集合API(应用程序编程接口)是一个类集,表示了一些特定类型的集合,这些类 的实现方式各不相同。
11.栈的元素是按照后进先出(LIFO)的方式进行处理的, 最后进入栈中的元素最先被移出。
栈是一种线性集合,元素的添加和删除都在同一端进行。在科学计算中,栈的基本使用就是
(private)。因此,只有该类的方法才可以访问和修改这些变量。用户与对象的唯一交互只 能通过其公用方法。公用方法表示了对象所能提供的服务。
7•数据类型是一组值及作用于这些数值上的各种操作。
8•抽象数据类型(ADT)是一种在程序设计语言中尚未定义其值和操作的数据类型。ADT
的抽象性体现在,ADT必须对其实现细节进行定义,且对这些用户是不可见的。因此,集 合是一种抽象数据类型。
相关文档
最新文档