2011广东省JAVA版数据结构(必备资料)
- 格式:docx
- 大小:17.50 KB
- 文档页数:2
第七章 (1)7.1 编写一个应用程序,绘制一个五角星。
(1)7.2 用Graphics2D绘制一条抛物线,设抛物线方程的系数从图形界面输入。
(3)7.3 利用Graphics2D的平移,缩放,旋转功能。
绘制一个六角星。
(7)7.4 编写画图程序。
(10)7.5 输入二次曲线的系数,画出二次曲线 (17)7.6. 写音乐播放器,只能播放wav,mid格式的。
(24)第七章7.1 编写一个应用程序,绘制一个五角星。
程序运行结果:源文件:Work7_1.javaimport java.awt.*;import javax.swing.*;/***7.1画一个五角星<BR>*@author黎明你好*/public class Work7_1{public static void main(String args[]){JFrame win = new JFrame("第七章,第一题");win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);win.setBounds(50, 50, 210, 250);win.add(new FiveStarCanvas(100), BorderLayout.CENTER);win.setVisible(true);win.validate();}}画板类源文件: FiveStarCanvas.java/***画板类,在上面画出五角星*@author黎明你好*/class FiveStarCanvas extends Canvas{private static final long serialVersionUID = 1L;/**五角星外接圆的半径*/private int radius;/***构造方法*@param r-初始化外接圆半径*/public FiveStarCanvas(int r){this.radius = r;}public void paint(Graphics g){int ax = radius; int ay = 0;int bx = (int) (radius * (1 - Math.cos((18 * Math.PI) / 180)));int cx = (int) (radius * (1 + Math.cos((18 * Math.PI) / 180)));int dx = (int) (radius * (1 - Math.cos((54 * Math.PI) / 180)));int ex = (int) (radius * (1 + Math.cos((54 * Math.PI) / 180)));int by = (int) (radius * (1 - Math.sin((18 * Math.PI) / 180)));int cy = (int) (radius * (1 - Math.sin((18 * Math.PI) / 180)));int dy = (int) (radius * (1 + Math.sin((54 * Math.PI) / 180)));int ey = (int) (radius * (1 + Math.sin((54 * Math.PI) / 180)));g.setColor(Color.RED);g.drawLine(dx, dy, ax, ay);g.drawLine(ax, ay, ex, ey);g.drawLine(ex, ey, bx, by);g.drawLine(bx, by, cx, cy);g.drawLine(cx, cy, dx, dy);g.setColor(Color.BLUE);g.drawOval(0, 0, 2 * radius, 2 * radius);g.drawLine(radius, radius, ax, ay);g.drawLine(radius, radius, bx, by);g.drawLine(radius, radius, cx, cy);g.drawLine(radius, radius, dx, dy);g.drawLine(radius, radius, ex, ey);}}7.2 用Graphics2D绘制一条抛物线,设抛物线方程的系数从图形界面输入。
2011数据结构《2011 数据结构》在当今数字化的时代,数据结构成为了计算机科学中至关重要的一部分。
它不仅影响着程序的运行效率,还决定了我们如何有效地组织和管理数据。
2011 年,数据结构领域也有着不少值得关注和探讨的发展。
数据结构,简单来说,就是指数据元素之间的关系和组织方式。
它就像是一个仓库的布局,决定了货物(数据)的存放和取出方式。
常见的数据结构包括数组、链表、栈、队列、树和图等等。
数组是一种最简单的数据结构,它就像一排整齐排列的盒子,每个盒子都有一个固定的位置。
通过索引可以快速地访问到特定位置的数据。
但数组的大小是固定的,在需要添加或删除元素时可能会比较麻烦。
链表则不同,它像是一串珠子,每个珠子(节点)都包含数据和指向下一个节点的指针。
链表的长度可以动态变化,添加和删除元素相对比较容易,但访问特定位置的元素就需要逐个节点遍历,效率相对较低。
栈和队列是两种特殊的线性结构。
栈遵循“后进先出”的原则,就像一个堆满盘子的洗碗机,最后放进去的盘子会最先被拿出来。
队列则遵循“先进先出”的原则,好比在银行排队办理业务,先排队的人先得到服务。
树是一种层次结构的数据结构,比如二叉树、二叉搜索树等。
二叉树每个节点最多有两个子节点,而二叉搜索树则具有特定的排序规则,使得查找、插入和删除操作的效率较高。
图则是更加复杂的数据结构,用于表示多个对象之间的复杂关系。
它由顶点和边组成,可以用于解决很多实际问题,比如地图导航、网络拓扑等。
在 2011 年,随着计算机技术的不断发展和应用需求的增加,数据结构的研究和应用也在不断深入。
在算法设计中,数据结构的选择往往起着关键作用。
例如,在需要频繁进行查找操作的情况下,选择二叉搜索树可能会比链表更高效。
而在需要快速添加和删除元素的场景中,栈和队列可能会更适用。
同时,数据结构也在数据库管理系统中扮演着重要角色。
数据库中的索引结构通常基于某种特定的数据结构来实现,以提高数据的查询效率。
1. 以下标识符中,哪个是无效的标识符?A. TheLongNameClassB. $byteC. okD. const标识符是赋予变量、类和方法的名称,可从一个字母、下划线(_)或美元符号($)开始,是大小写区别对待的, 且无最大长度在Java编程语言中,标识符是赋予变量、类或方法的名称。
标识符可从一个字母、下划线(_)或美元符号($)开始,随后也可跟数字。
标识符是大小写区别对待的并且未规定最大长度。
有效标识符如下:- identifier- userName- User_name- _sys_varl- $changeJava语言规定标识符由字母、数字、下划线和美元符号($)组成,并且第一个字符不能是数字所以A、B、c是合法标识符,D是java保留关键字。
JAVA标识符的规则是这样的标识符由字母、数字、下划线“_”、美元符号“$”或者人民币符号“¥”组成,并且首字母不能是数字。
也就是说除了_ $ ¥这3个符号外,标识符只能有数字和字母,什么括号,这样那样的都不是标识符的组成部分。
不能把关键字和保留字作为标识符。
标识符没有长度限制。
2. 以下声明合法的是哪一个?A. default String s;B. public final static int w( )C. abstract double d;D. abstract final double hyperbolicCosine( )B a default不用来修饰变量,public,private,protected,不写(等于protected)。
c abstract double d;没有这么做的,final可以。
d abstract final 不可以一起用3. 下述概念中不属于面向对象方法的是哪一组?A. 对象和消息B. 继承和多态C. 类和封装D. 过程调用4.下面代码执行后,正确的输出结果是多少?String s1="Y ou are hired!";System.out.println(s1.replace('h','f')); //用f把字串中的h替换了System.out.println(s1);A.Y ou are fired!Y ou are hired!B.Y ou are fired!Y ou are fired!C.Y ou are hired!Y ou are hired!D.Y ou are hired!Y ou are fired!5. 下列选项中哪一个是表达式1+2+"aa"+3 的值?A. "12aa3"B. "3aa3"C. "12aa"D. "aa3"6. 下面哪些是short型的取值范围A. -27 ~ 27-1B. 0 ~216-1C. -215 ~ 215-1D. -231 ~231-17. 下面选项中哪些答案可以用来表示八进制值8A. 010B. 0x10C. 08D. 0x88用二进制表示是001000,那用八进制表示就是0109. 下面的哪些赋值语句是不对的A. float f = 11.1B. double d = 5.3E12C. double d = 3.14159float f=1.11f;要加f..不然编译出错10. 下面程序段执行后b的值是多少?String str = "java";boolean b = str instanceof String;A. 0B. trueC. 1D. falsestr instanceof String这句代码的意思是:变量str是否是String类型的,如果是则true,不是则false如果你前面有定义变量str是String类型,那b的值当然也就是true啦。
1、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a??11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( B )。
A)13 B)33 C)18 D)402、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;C)p=p->next->next; D) p->next=p;3、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的4、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。
A)top不变 B)top=0 C)top-- D)top++5、已知广义表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)Head(Tail(Head(Tail(Tail(L)))))6、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。
当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)127、下面程序段的时间复杂度是( A )。
s =0;for( i =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;A) O(n2) B) O(n)C) O(m*n) D)O(1)8、数据结构研究的内容是( D )。
A)数据的逻辑结构 B)数据的存储结构C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面9、栈进行插入和删除操作的特点是( A )。
java数据结构Java数据结构1:介绍1.1 概述Java数据结构是用于存储和组织数据的一种方式,它提供了各种数据结构和算法,使程序员能够高效地操作数据。
1.2 目的本文档旨在介绍Java中常用的数据结构及其基本操作,帮助程序员了解如何选择合适的数据结构来解决问题。
2:线性数据结构2.1 数组2.1.1 定义2.1.2 基本操作(增删改查)2.1.3 时间复杂度分析2.2 链表2.2.1 定义2.2.2 单链表2.2.3 双链表2.2.4 基本操作(增删改查)2.2.5 时间复杂度分析2.3 栈2.3.1 定义2.3.2 基本操作(入栈、出栈)2.3.3 应用场景2.3.4 时间复杂度分析2.4 队列2.4.1 定义2.4.2 基本操作(入队、出队)2.4.3 阻塞队列与非阻塞队列2.4.4 时间复杂度分析3:非线性数据结构3.1 树3.1.1 二叉树3.1.2 平衡二叉树3.1.3 二叉搜索树3.1.4 堆3.1.5 哈夫曼树3.1.6 时间复杂度分析3.2 图3.2.1 定义3.2.2 图的表示方法(邻接矩阵、邻接表)3.2.3 图的遍历(深度优先遍历、广度优先遍历)3.2.4 最短路径算法(Dijkstra算法、Floyd算法)3.2.5 图的连通分量3.2.6 时间复杂度分析4:排序算法4.1 冒泡排序4.2 选择排序4.3 插入排序4.4 快速排序4.5 归并排序4.6 堆排序4.7 时间复杂度分析5:搜索算法5.1 顺序查找5.2 二分查找5.3 广度优先搜索5.4 深度优先搜索5.5 时间复杂度分析6:附件附件1:Java数据结构示例代码7:法律名词及注释7.1 版权根据版权法,未经版权所有人的许可,任何单位或个人不得以任何形式复制、传播、展示、修改本文档。
7.2 免责声明本文档仅供参考,不保证其准确性和完整性。
作者不承担因使用本文档内容引发的任何法律责任。
第二章算法分析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语⾔程序设计与数据结构(基础篇)》第11版第⼀章复习题答案1.2.1答案:硬件是指计算机中可见的物理部分,⽽软件提供不可见的指令。
1.2.2答案:中央处理器(CPU)、内存、存储设备、输⼊设备和输出设备、通信设备。
1.2.3答案:Central Processing Unit1.2.4答案:Hz(赫兹)、MHz(兆赫兹)、GHz(吉赫兹)1.2.5答案:⽐特就是⼆进制数字系统中的数,计算机中字节是最⼩的存储单元1.2.6答案:计算机的内存由⼀个有序的字节序列组成,⽤于存储程序及程序需要的数据。
RAM代表随机访问存储器。
每个字节都有唯⼀的地址,使⽤这个地址确定字节的位置,以便于存储和获取数据,因为可以按任意顺序存取字节,所以内存也被称为:字节1.2.8答案:B、KB、MB、GB随机访问存储器(RAM)。
1.2.7答案1.2.9答案:内存和永久存储设备的不同是计算机的内存是⼀种易失的数据保存形式:断电时存储在内存中的信息就会丢失。
程序和数据被永久的存放在存储设备上,当计算机确实要⽤他们时再移⼊内存,因为从内存读取⽐从存储设备读取要快得多。
1.3.1答案:机器语⾔1.3.2答案:汇编语⾔(assembly language)就是使⽤短的描述性单词(助记符)来表⽰每⼀条机器语⾔指令。
由于计算机不理解汇编语⾔,所以需要使⽤⼀种称为汇编器的程序将汇编语⾔程序转换为机器代码。
1.3.3答案:⾼级编程语⾔类似于英语,易于学习和使⽤,⾼级语⾔中的指令称为语句。
源程序就是⽤⾼级编程语⾔编写的程序。
1.3.4答案:解释器和编译器就是可以将源程序翻译成可执⾏的机器代码的编程⼯具。
1.3.5答案:解释器和编译器的区别就是:解释器是从源代码中读取⼀条语句,将其翻译成为机器代码或者虚拟机器代码,然后⽴刻运⾏,编译器就是将整个源代码翻译成为机器代码⽂件,然后执⾏该机器代码⽂件。
1.4.1答案:操作系统(Operaing System OS)是运⾏在计算机上的重要的程序,他可以管理和控制计算机的活动。
1、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( B )。
A)9 B)11 C)15 D)不能确定
2、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A )。
A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;
C)p->next=s->next; s->next=p D)p->next=s; s->next=q;
3、在数据结构中,从逻辑上可以把数据结构分为( C )。
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
4、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。
A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
5、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A )。
A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;
C)p->next=s->next; s->next=p D)p->next=s; s->next=q;
6、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5
C)6 D)7
7、数据结构中,在逻辑上可以把数据结构分成( B )。
A)动态结构和静态结构
B)线性结构和非线性结构
C)紧凑结构和非紧凑结构
D)内部结构和外部结构
8、线索二叉树中某结点D,没有左孩子的条件是( B )。
A)D->Lchild=Null B) D->ltag=1
C) D->Rchild=Null D) D->ltag=0
9、以下属于顺序存储结构优点的是( A )。
A) 存储密度大B) 插入运算方便
C)删除运算方便D)可方便地用于各种逻辑结构的存储表示
10、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
11、下列序列中,执行第一趟快速排序后得到的序列是( 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]
12、如果结点A有3个兄弟,而且B为A的双亲,则B的度为( B )。
A)3 B)4 C)5 D)1
13、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。
A)n B)2e C)e D) n+e
14、串的逻辑结构与( D )的逻辑结构不同。
A)线性表 B)栈
C)队列 D)树
15、向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( D )。
A) hs->next=s; B) s->next=hs->next; hs->next=s;
C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next;
16、设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( A )。
A)p->next=p->next->next B)p=p->next
C)p=p->nexe->next D)p->next=p。