2013浙江省JAVA版数据结构(必备资料)
- 格式:rtf
- 大小:67.44 KB
- 文档页数:2
java中常用的数据结构
Java中常用的数据结构有:
1. 数组(Array):一组具有相同类型的数据元素的集合,通
过索引来访问元素。
2. 链表(LinkedList):由若干个节点组成,每个节点包含数
据和指向下一个节点的指针。
3. 栈(Stack):一种后进先出(LIFO)的数据结构,只允许
在栈顶进行插入和删除操作。
4. 队列(Queue):一种先进先出(FIFO)的数据结构,只允
许在队头和队尾进行插入和删除操作。
5. 集合(Set):一种不允许重复元素的数据结构,常见的实
现类有HashSet和TreeSet。
6. 列表(List):一种有序的数据结构,允许重复元素,常见
的实现类有ArrayList和LinkedList。
7. 字典(Map):一种键值对的数据结构,以键作为唯一标识
符来存储和访问元素,常见的实现类有HashMap和TreeMap。
8. 堆(Heap):一种可以快速找到最大值(或最小值)的数
据结构,常用于优先队列的实现。
9. 树(Tree):一种层次关系的数据结构,包含根节点、子节
点和叶子节点等。
10. 图(Graph):由节点和节点之间的关系(边)组成的数据结构,常用于描述网络等复杂关系。
这些数据结构在Java中都有对应的类或接口,可以根据具体
的需求选择合适的数据结构来使用。
java数据结构参考文献
以下是一些关于Java数据结构的参考文献:
1. 《数据结构与算法分析(Java语言描述)》, 机械工业出版社,作者: Mark Allen Weiss。
2. 《Java数据结构与算法》, 人民邮电出版社,作者: 王晓东。
3. 《Java核心技术卷II:高级特性(原书第10版)》,机械工业出版社,作者: Cay S. Horstmann、Gary Cornell。
4. 《算法图解(Python/Java版)》, 人民邮电出版社,作者: Aditya Bhargava。
5. 《大话数据结构与算法(Java版)》,清华大学出版社,作者: 宗哲。
6. 《数据结构与算法分析(Java版)》,清华大学出版社,作者: 孙秋华、赵凤芝。
7. 《Java编程思想(第4版)》,机械工业出版社,作者: Bruce Eckel。
8. 《Java数据结构和算法(第2版)》,清华大学出版社,作者: 罗卫、李晶、吴艳。
9. 《Java程序员面试宝典》,人民邮电出版社,作者: 陈小玉。
10. 《Java程序设计与数据结构(基础篇)》,人民邮电出版社,作者: 徐
宏英。
以上参考文献仅供参考,建议根据自身需求选择合适的书籍阅读。
java数据结构相关文献
关于Java数据结构的文献很多,以下是一些相关的文献供您参考:
1. 《Java数据结构与算法分析》:这本书是Java程序员必读经典书籍之一,涵盖了Java数据结构的主要内容,包括数组、链表、栈、队列、二叉树等,同时也介绍了各种算法和数据结构的应用。
2. 《深入理解Java数据结构与算法》:这本书深入浅出地介绍了Java数据结构和算法的实现原理和应用,适合有一定Java基础的读者。
3. 《Java核心技术卷II》:这本书是Java程序员必备的参考书之一,其中
也涵盖了Java数据结构的内容,包括集合框架、泛型、流等。
4. 《Data Structures and Algorithms in Java》:这本书是面向大学本科
生的教材,涵盖了数据结构和算法的原理以及Java实现。
5. 《Java数据结构与算法案例教程》:这本书通过案例的形式介绍了Java
数据结构和算法的实现和应用,适合初学者和有一定Java基础的读者。
除了以上书籍,还有很多在线教程和博客文章可以供您参考,例如LintCode、LeetCode等在线编程网站上有大量的Java数据结构和算法题
目以及解答。
《数据结构(Java语言版)》试卷1
一、选择题(每题5分,共25分)
1.
在Java中,哪种数据结构不支持“修改”操作?
A. ArrayList
B. LinkedList
C. HashSet
D. HashMap
2.
下列哪个算法的时间复杂度为O(nlogn)?
A. 冒泡排序
B. 快速排序
C. 插入排序
D. 选择排序
3.
以下哪个是栈(Stack)数据结构的特性?
A. 先入后出(FILO)
B. 先入先出(FIFO)
C. 按值访问
D. 按索引访问
4.
下列哪个是队列(Queue)数据结构的特性?
A. 先入后出(FILO)
B. 先入先出(FIFO)
C. 按值访问
D. 按索引访问
5.
在Java中,哪种数据结构可以存储重复的元素?
A. HashSet
B. TreeSet
C. ArrayList
D. LinkedList
6.
二、填空题(每空3分,共18分)
1.在Java中,ArrayList是基于____________实现的。
2.二叉树的深度为h,则最多有____________个节点。
3.图的遍历方法有____________和____________。
4.堆排序的时间复杂度为____________。
5.链表的特点是每个节点包含两部分:和。
三、简答题(每题10分,共20分)
1.简述数组和链表的区别。
2.简述二叉树的中序遍历过程。
1、编写一个过程,对一个n×n矩阵,通过行变换,使其每行元素的平均值按递增顺序排列。
2、设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。
算法应对异常情况(入栈满等)给出相应的信息。
设有一个背包可以放入的物品重量为S,现有n件物品,重量分别为W1,W2,...,Wn。
问能否从这n件物品中选择若干件放入背包,使得放入的重量之和正好是S。
设布尔函数Knap(S,n)表示背包问题的解,Wi(i=1,2,...,n)均为正整数,并已顺序存储地在数组W中。
请在下列算法的下划线处填空,使其正确求解背包问题。
Knap(S,n)若S=0则Knap←true否则若(S<0)或(S>0且n<1)则Knap←false否则若Knap(1) , _=true则print(W[n]);Knap ←true否则 Knap←Knap(2) _ , _设有一个顺序栈S,元素s1, s2, s3, s4, s5, s6依次进栈,如果6个元素的出栈顺序为s2, s3, s4, s6, s5, s1,则顺序栈的容量至少应为多少?画出具体进栈、出栈过程。
假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间。
例如:设str1和str2是分别指向两个单词的头结点,请设计一个尽可能的高效算法,找出两个单词共同后缀的起始位置,分析算法时间复杂度。
将n(n>1)个整数存放到一维数组R中。
设计一个尽可能高效(时间、空间)的算法,将R中保存的序列循环左移p(0<p<n)个位置,即将R中的数据(x0, x1, x2,…, xn-1),变换为(xp, xp+1, … , xn-1 ,x0 , x1,…, xp-1)。
3、设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-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.3 B.37C.50 D.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____条边。
1、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
2、在数据结构中,从逻辑上可以把数据结构分为( C )。
A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
3、线性表的链接实现有利于( A )运算。
A)插入 B)读元素
C)查找 D)定位
4、二叉树第i(i≥1)层上至多有( C )结点。
A)2i B)2i C)2i-1 D)2i-1
5、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
6、向一个栈顶指针为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;
7、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列
C)顺序队列 D)链队列
8、与无向图相关的术语有( C )。
A)强连通图 B)入度
C)路径 D)弧
9、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( B )。
A)9 B)11 C)15 D)不能确定
10、用一维数组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
11、用一维数组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
12、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5
C)6 D)7
13、下面程序段的时间复杂度是( 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)
14、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。
当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)12
15、队列的操作的原则是( A )。
A)先进先出 B) 后进先出
C) 只能进行插入 D) 只能进行删除。