java数据结构

合集下载

数据结构-Java语言描述 第三章 栈和队列

数据结构-Java语言描述 第三章 栈和队列

System.exit(1);
}
栈顶指针top的初始值决
top=-1;
定了后续其他方法的实现
stackArray=(T[])new Object[n];
}
【算法3-2】入栈
public void push(T obj)
{
if(top==stackArray.length-1){
T []p=(T[])new Object [top*2];
(b)元素a2入栈
an … … a2 a1
(c)元素an入栈
an-1 … a2 a1
(d)元素an出栈
a2 a1
(e)元素a3出栈
a1
(f)元素a2出栈
【例3-1】一个栈的输入序列是1、2、3、4、5,若在 入栈的过程中允许出栈,则栈的输出序列4、3、5、1、 2可能实现吗?1、2、3、4、5的输出呢?
型 正序遍历:依次访问栈中每个元素并输出
3.1.2 顺序栈
顺序栈泛型类的定义如下:
public class sequenceStack<T> {
顺序栈中一维数组 的初始长度
final int MaxSize=10;
private T[] stackArray; 存储元素的数组对象
private int top;
public void nextOrder() {
for(int i=top;i>=0;i--) System.out.println(stackArray[i]);
}
【算法3-8】清空栈操作
public void clear() {
top=-1; }
3.1.3 链栈
栈的链接存储结构称为链栈。结点类的定义,同 第二章Node类。

java数据结构笔试题目

java数据结构笔试题目

java数据结构笔试题目Java数据结构笔试题目⒈数组●数组的基本概念●数组的声明和初始化●数组的访问和修改●多维数组●数组的常见操作(排序、查找、插入、删除)⒉链表●链表的基本概念●链表的实现(单链表、双链表、循环链表)●链表的插入和删除●链表的反转●链表的常见操作(查找、更新、合并)⒊栈和队列●栈的基本概念和特点●栈的实现和应用●队列的基本概念和特点●队列的实现和应用●栈和队列的比较⒋树●树的基本概念和术语●二叉树的基本概念和实现●二叉树的遍历(前序、中序、后序)●二叉搜索树●平衡二叉树和红黑树⒌图●图的基本概念和术语●图的表示方法(邻接矩阵、邻接表)●图的遍历算法(深度优先搜索、广度优先搜索)●最短路径算法(Dijkstra、Floyd-Warshall)●最小树算法(Prim、Kruskal)⒍散列表●散列函数的定义和特点●散列表的基本概念和实现●冲突解决方法(开放寻址法、链表法)●散列表的性能分析和优化●哈希算法和应用⒎堆●堆的基本概念和特点●堆的实现(二叉堆、斐波那契堆)●堆的应用(优先队列、堆排序)●堆的性能分析和优化●堆与其他数据结构的联系⒏排序算法●冒泡排序●插入排序●选择排序●快速排序●归并排序●堆排序●希尔排序●桶排序和基数排序⒐搜索算法●顺序搜索●二分搜索●插值搜索●哈希搜索●广度优先搜索●深度优先搜索●A搜索算法⒑字符串匹配算法●暴力匹配算法●KMP算法●Boyer-Moore算法●Rabin-Karp算法●后缀树和后缀数组1⒈复杂度分析●时间复杂度●空间复杂度●最好、最坏和平均情况复杂度●复杂度的比较和选择●复杂度分析的实例附件:无法律名词及注释:⒈版权:著作权法所赋予作品创作者对其原创作品的独占权利。

⒉商标:商标法所保护的一种标识,用于区分和识别特定商品或服务的来源。

⒊专利:专利法所赋予的一种权利,用于保护发明者的发明创造,限制他人在专利权期限内制造、使用、销售、进口该发明。

java中常用的数据结构

java中常用的数据结构

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语言描述李春葆程序

数据结构教程java语言描述李春葆程序摘要:1.数据结构教程概述2.Java语言描述数据结构的优点3.李春葆程序的特点与结构4.教程内容的详细介绍4.1 线性表4.2 栈与队列4.3 树与二叉树4.4 图4.5 排序算法4.6 查找算法5.教程在实际应用中的价值6.对李春葆程序的评价与展望正文:数据结构教程是一门计算机科学与技术专业的基础课程,旨在帮助学生掌握各种常用的数据结构和算法。

近年来,Java语言因其跨平台特性、丰富的类库和简洁的语法,成为了许多开发者编写数据结构教程的首选。

在这样的背景下,李春葆程序以Java语言为基础,为广大学习者提供了一部全面、易懂的数据结构教程。

Java语言描述数据结构的优点在于,它允许开发者直接使用面向对象的特性来表示各种数据结构,使得代码更加直观、易于理解。

此外,Java语言丰富的类库提供了许多现成的方法,方便开发者实现各种操作,从而降低了学习难度。

李春葆程序采用了模块化的设计,将教程划分为线性表、栈与队列、树与二叉树、图、排序算法和查找算法六个部分,每个部分自成体系,方便学习者根据自己的需求进行选择。

教程在讲解每个数据结构时,都从基本概念入手,通过实例和图解,让学习者逐步掌握其原理和应用。

此外,教程还提供了丰富的练习题,帮助学习者巩固所学知识。

在实际应用中,数据结构教程可以帮助开发者更好地理解各种算法和数据结构的原理,从而提高编程效率。

例如,掌握排序算法可以让我们在处理大量数据时更加得心应手;了解树结构可以方便我们实现文件系统、数据库等复杂系统。

总之,数据结构教程是计算机科学与技术专业学生必备的技能。

总的来说,李春葆程序的数据结构教程是一部内容全面、讲解清晰、实例丰富的教材。

当然,教程还可以在某些方面进行改进,例如增加更多的实际应用案例,提供更丰富的编程实践等。

java数据结构相关文献

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)复习题及答案

数据结构(java)复习题及答案

数据结构(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____条边。

JAVA数据结构——单链表的操作

JAVA数据结构——单链表的操作

单链表的操作方法一:package ch02;(1)建立结点类Node.javapublic class Node {public Object data;//存放结点数据值public Node next;//存放后继结点//无参构造函数public Node(){ this(null,null);}//只有结点值的构造函数public Node(Object data){ this(data,null);}//带有节点值和后继结点的构造函数public Node(Object data,Node next){ this.data=data;this.next=next;}}(2)建立链表及操作LinkList.javapackage ch02;import java.util.Scanner;public class LinkList implements IList{public Node head;//单链表的头指针//构造函数初始化头结点public LinkList(){head=new Node();}//构造函数构造长度为n的单链表public LinkList(int n,boolean Order) throws Exception{ this();if(Order)create1(n); //头插法顺序建立单链表elsecreate2(n); //尾插法逆序建立单链表}//头插法顺序建立单链表public void create1(int n) throws Exception{Scanner sc=new Scanner(System.in);System.out.println("请输入结点的数据(头插法):”);for(int i=0;i<n;i++){insert(0,sc.next());}}//尾插法逆序建立单链表public void create2(int n) throws Exception{Scanner sc=new Scanner(System.in);System. out.println("请输入结点的数据(尾插法):");for(int i=0;i<n;i++){insert(length(),sc.next());}}//将链表置空public void clear(){head.data=null;head.next=null;}//判断链表是否为空public boolean isEmpty(){return head.next==null;}//返回链表长度public int length(){Node p=head.next;int length=0;while(p!=null){p=p.next;length++;//返回P不空长度length加1}return length;}//读取并返回第i个位置的数据元素public Object get(int i) throws Exception {Node p=head.next;int j;//从首结点开始向后查找,直到9指向第i个结点或者p为nullfor(j=0;j<i&&p!=null;j++){ p=p.next;}if(j>i||p==null)//i不合法时抛出异常throw new Exception("第"+i+”个数据元素不存在”);return p.data;}//插入乂作为第i个元素public void insert(int i, Object x) throws Exception{ Node p=head;int j=-1;//寻找第i个结点的前驱i-1while(p!=null&&j<i-1){p=p.next;j++;}if(j>i-l||p==null)//i不合法时抛出异常throw new Exception("插入位置不合法”);Node s=new Node(x);s.next=p.next;p.next=s;}//删除第i个元素public void remove(int i) throws Exception{ Node p=head;int j=-1;while(p!=null&&j<i-1){//寻找第i-1 个节点p=p.next;j++;}if(j>i-1||p.next==null)throw new Exception("删除位置不合法”);p.next=p.next.next;}//返回元素x首次出现的位序号public int indexOf(Object x) {Node p=head.next;int j=0;while(p!=null&&!p.data.equals(x)){p=p.next;j++;if(p!=null)return j;elsereturn -1;}public void display(){Node p=head.next;while(p!=null){if(p.next==null)System.out.print(p.data);elseSystem.out.print(p.data+"f );p=p.next;}}}(3)建立测试类Test.javappublic class test {public static void main(String[] args) throws Exception { // TODO Auto-generated method stubScanner sc=new Scanner(System.in);boolean or;int xz,xx;System.out.println("请选择插入的方法:0、头插法,1、尾插法");xz=sc.nextInt();if(xz!=0)or=true;elseor=false;System. out.println("请插入的结点的个数:”);xx=sc.nextInt();LinkList L=new LinkList(xx,or);System.out.println("建立的链表为:");L.display();System.out.println();System.out.println("链表的长度:"+L.length());System. out.println(”请输入查找的结点的数据:”);Object x=sc.next();int position=L.indexOf(x);System.out.println("结点的数据为:"+x+"的位置为:"+position); System. out.println("请输入删除的结点的位置:”);int sr=sc.nextInt();L.remove(sr);L.display();System.out.println();System.out.println("链表的长度:"+L.length()); }品P rob I em & J a vs d oc / Declaration Q Error Log 里Con sole-M、、■=:termin8ted> test [3] [Java Application] C U &ert\Ad im i n i st rat o r\Ap p Data\L o cs I请选择插入.的方法:0、头插法,lv星插法请插入的特点的个数:请愉入结点的颓据(尾插法):A B C E D F建立的旌表为;A+B T C+E T D+F链表的长度:6请输入查找的结点的数据:结点的数据为:E的位置为:3请输入删除的结点的位置,R+B T E+DW道表的长度:S方法二(引入get和set方法)Package sy;import java.util.Scanner;//单链表的结点类public class Node {private Object data; //存放结点值private Node next; //后继结点的引用public Node() { //无参数时的构造函数this(null, null);}public Node(Object data) { // 构造值为data 的结点this(data, null);}public Node(Object data, Node next) {//构造值为data 和next 的结点构造函数this.data = data;this.next = next;}public Object getData() { return data;}public void setData(Object data) {this.data = data;}public Node getNext() { return next;public void setNext(Node next) { this.next = next;}}//实现链表的基本操作类public class LinkList {Node head=new Node();//生成一个带头结点的空链表//根据输入的一系列整数,以0标志结束,用头插法建立单链表public void creat() throws Exception {Scanner sc = new Scanner(System.in); //构造用于输入的对象for (int x=sc.nextInt(); x!=0; x=sc.nextInt()) //输入若干个数据元素的值(以0结束) insert(0, x);//生成新结点,插入到表头}//返回带头结点的单链表中第i个结点的数据域的值。

Java核心数据结构(List、Map、Set)原理与使用技巧

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数据结构之环形链表本篇⽂章介绍数据结构中的环形链表。

介绍环形链表,类似于单链表,也是⼀种链式存储结构,环形链表由单链表演化过来。

单链表的最后⼀个结点的链域指向NULL,⽽环形链表的建⽴,不要专门的头结点,让最后⼀个结点的链域指向链表结点。

简单点说链表⾸位相连,组成环状数据结构。

如下图结构:⽽在环形链表中,最为著名的即是约瑟夫环问题。

约瑟夫环问题问题介绍:设编号为1、2、3、... 、n的n个⼈围坐⼀圈,约定编号为k(1<=k<=n)的⼈从1开始报数,数到m的那个⼈出列,它的下⼀位⼜从1开始报数,数到m的那个⼈⼜出列。

依次类推,直到所有⼈出列为⽌,由此产⽣⼀个出队编号的序列。

我们可以举个例⼦来分析⼀下:假设⼀共有5个⼈,即n = 5;从第⼀个⼈开始报数,即k = 1;数到2的⼈出列,即m = 2。

⽰意图如下:出队列的顺序即为:2 -> 4 -> 1 -> 5 -> 3那么我们⾸先得构建出⼀个单向的环形链表。

实现分析:1. 先创建第⼀个节点,让first指向该节点,并形成环状2. 每创建⼀个新的节点就将该节点加⼊到已有的环形链表中分析完毕,我们⽤代码实现⼀下://创建⼀个环形的单向链表class CircleSingleLinkedList {// 创建⼀个first节点,当前没有编号private Boy first = null;// 添加节点,构建成⼀个环形链表System.out.println("数据错误");return;}// 定义辅助节点Boy curBoy = null;// 使⽤循环创建环形链表for (int i = 1; i <= nums; i++) {// 根据编号创建节点Boy boy = new Boy(i);// 如果是第⼀个节点if (i == 1) {first = boy;first.setNext(first);curBoy = first;// 让curBoy指向第⼀个节点,帮助构建链表} else {curBoy.setNext(boy);boy.setNext(first);// 使其指向第⼀个节点,形成环状curBoy = boy;// curBoy后移}}}// 遍历当前环形链表public void list() {// 判断链表是否空if (first == null) {System.out.println("链表为空");return;}// 定义辅助节点Boy curBoy = first;while (true) {System.out.println("节点编号:" + curBoy.getNo());if (curBoy.getNext() == first) {// 此时说明遍历完毕break;}curBoy = curBoy.getNext();// curBoy后移}}}//创建⼀个Boy类,表⽰⼀个节点class Boy {private int no;// 编号private Boy next;// 指向下⼀个节点public Boy(int no) {this.no = no;}public int getNo() {return no;}public void setNo(int no) {this.no = no;}public Boy getNext() {return next;}public void setNext(Boy next) {this.next = next;}}这样就实现了⼀个环形链表,接下来测试⼀下:public static void main(String[] args) {CircleSingleLinkedList circleSingleLinkedList = new CircleSingleLinkedList(); circleSingleLinkedList.addBoy(5);circleSingleLinkedList.list();}运⾏结果:节点编号:1运⾏结果也是没有问题的,接下来便是⽣成出圈序列。

Java常见数据结构面试题(带答案)

Java常见数据结构面试题(带答案)

Java常见数据结构⾯试题(带答案)1.栈和队列的共同特点是(只允许在端点处插⼊和删除元素)4.栈通常采⽤的两种存储结构是(线性存储结构和链表存储结构)5.下列关于栈的叙述正确的是(D)A.栈是⾮线性结构B.栈是⼀种树状结构C.栈具有先进先出的特征D.栈有后进先出的特征6.链表不具有的特点是(B)A.不必事先估计存储空间 B.可随机访问任⼀元素C.插⼊删除不需要移动元素D.所需空间与线性表长度成正⽐7.⽤链表表⽰线性表的优点是(便于插⼊和删除操作)8.在单链表中,增加头结点的⽬的是(⽅便运算的实现)9.循环链表的主要优点是(从表中任⼀结点出发都能访问到整个链表)10.线性表L=(a1,a2,a3,……ai,……an),下列说法正确的是(D)A.每个元素都有⼀个直接前件和直接后件B.线性表中⾄少要有⼀个元素C.表中诸元素的排列顺序必须是由⼩到⼤或由⼤到⼩D.除第⼀个和最后⼀个元素外,其余每个元素都有⼀个且只有⼀个直接前件和直接后件11.线性表若采⽤链式存储结构时,要求内存中可⽤存储单元的地址(D)A.必须是连续的B.部分地址必须是连续的C.⼀定是不连续的D.连续不连续都可以12.线性表的顺序存储结构和线性表的链式存储结构分别是(随机存取的存储结构、顺序存取的存储结构)13.树是结点的集合,它的根结点数⽬是(有且只有1)14.在深度为5的满⼆叉树中,叶⼦结点的个数为(31)15.具有3个结点的⼆叉树有(5种形态)16.设⼀棵⼆叉树中有3个叶⼦结点,有8个度为1的结点,则该⼆叉树中总的结点数为(13)17.已知⼆叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是(cedba)18.已知⼀棵⼆叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该⼆叉树的后序遍历为(DGEBHFCA)19.若某⼆叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是(gdbehfca)20.数据库保护分为:安全性控制、完整性控制、并发性控制和数据的恢复。

数据结构教程java语言描述李春葆程序

数据结构教程java语言描述李春葆程序

《深入浅出:Java语言下的数据结构教程》一、引言数据结构是计算机科学的基础,它为我们提供了组织和存储数据的有效方式。

而在Java语言中,李春葆编写的数据结构教程已经成为了许多程序员学习的首选。

本文将深入探讨这一教程的内容,旨在帮助读者更全面、深刻地理解数据结构在Java语言中的应用。

二、数据结构概述数据结构是指在计算机中组织和存储数据的方式,它影响着数据的访问、操作和存储效率。

在Java语言中,我们常用的数据结构包括数组、链表、栈、队列、树和图等。

李春葆的教程就系统地介绍了这些数据结构的原理、实现和应用。

三、数据结构在Java中的应用1. 数组:数组是最简单的数据结构,它可以存储多个相同类型的数据。

在Java中,我们可以通过数组来实现向量、矩阵等数据结构。

2. 链表:链表是一种线性数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。

在Java中,我们可以通过链表来实现队列、栈等数据结构。

3. 栈和队列:栈和队列是两种基本的数据结构,它们分别采用了后进先出和先进先出的策略。

在Java语言中,我们可以通过数组或链表来实现栈和队列。

4. 树和图:树和图是两种非线性的数据结构,它们在计算机科学中有着广泛的应用。

在Java中,我们可以通过递归或迭代来实现树和图的操作。

四、数据结构的操作和方法1. 增加、删除、查找和遍历:数据结构的基本操作包括增加、删除、查找和遍历。

在Java语言中,我们可以通过各种算法和方法来实现这些基本操作,比如递归、迭代、深度优先搜索和广度优先搜索等。

2. 排序和搜索:排序和搜索是数据结构中常见的问题,它们涉及到了算法和时间复杂度。

在Java语言中,我们通常采用快速排序、归并排序和二分搜索树等方法来实现排序和搜索。

五、个人观点和理解数据结构在Java语言中有着丰富的应用,它为我们提供了高效、灵活和可靠的数据组织和处理方式。

通过学习李春葆的数据结构教程,我们可以更深入地理解数据结构的原理和实现,从而提升自己的编程能力和技术水平。

数据结构(Java版)-数据结构(Java版)-吕云翔-清华大学出版社

数据结构(Java版)-数据结构(Java版)-吕云翔-清华大学出版社
(a1,b1)(a2,b2)…(an,bn) 其中(ai,bi)(i=1,2…n) 分别表示某人的名字和对应的电话号码。要求设计一个算法, 当给定任何一个人的名字时,该算法能够打印出此人的电话号码,如果该电话簿中 根本就没有这个人,则该算法也能够报告没有这个人的信息。
1.2 有关概念和术语 数据:
素的个数n定义为表的长度。当n=0时称为空表,常常将非空的线性表(n>0)记作: (a1,a2,…an)
这里的数据元素ai(1≦i≦n)只是一个抽象的符号,其具体含义在不同的情况下可 以不同。
例1、26个英文字母组成的字母表 (A,B,C、…、Z)
1.1 什么是数据结构 众所周知,计算机的程序是对信息进行处理。在大多数情况下,这些信息并不是
没有组织的,信息(数据)之间往往具有重要的结构关系,这就是数据结构的内容。 什有一个电话号码薄,它记录了N个人的名字和其相应的电话号码,假定按如下
形式安排:
所有能被输入到计算机中,且能被计算机处理的符号的集合。
是计算机操作的对象的总称。 是计算机处理的信息的某种特定的符号表示形式。
数据元素:
是数据(集合)中的一个“个体”
是数据结构中讨论的基本单位
数据结构主要指逻辑结构和物理结构 数据之间的相互关系称为逻辑结构。通常分
为四类基本结构: 一、集合 结构中的数据元素除了同属于一种 类型外,别无其它关系。 二、线性结构 结构中的数据元素之间存在一 对一的关系。 三、树型结构 结构中的数据元素之间存在 一对多的关系。 四、图状结构或网状结构 结构中的数据元素 之间存在多对多的关系。
假如,随着问题规模 n 的增长, 算法执行时间的增长率和 f(n) 的增长 率相同,则可记作:
T (n) = O(f(n))

Java数据结构与算法

Java数据结构与算法

Java数据结构与算法一、引言Java 是一种强大、高效的编程语言,在现代软件开发领域中使用广泛。

作为一名 Java 开发人员,了解数据结构与算法的重要性不言而喻,因为数据结构和算法是计算机科学的核心。

本文将重点讨论 Java 数据结构与算法,它们的实现方式及其应用。

二、数据结构数据结构是一种在计算机中组织和存储数据的方式。

在软件开发过程中,开发人员需要选择合适的数据结构来存储和处理数据,以实现最好的性能和效率。

Java 提供了很多内置的数据结构,例如数组、链表、队列和栈等。

1. 数组数组是 Java 中最基本和最常用的数据结构之一。

它是一个固定大小的数据序列,其中的元素都具有相同的数据类型。

数组可以使用索引来访问和修改元素。

在 Java 中,可以使用内置的数组类型 int[]、double[]、char[]等,也可以使用泛型数组类型 ArrayList。

可以通过如下方式创建一个 Java 数组:int[] arr = new int[10];这会创建一个长度为 10 的 int 类型数组,其中的元素默认值为 0。

2. 链表链表是一个由节点组成的数据结构,其中每个节点都包含一个数据元素和一个指向下一个节点的指针。

链表的优点在于可以很容易地添加或删除元素,但是访问元素时需要遍历整个链表。

Java 中提供了多种链表类型,包括单向链表、双向链表和循环链表。

可以通过如下方式创建一个单向链表:public class Node {int val;Node next;Node(int x) { val = x; }}Node head = new Node(1);head.next = new Node(2);这会创建一个包含两个元素的单向链表,其值分别为 1 和 2。

3. 队列队列是一种先进先出(FIFO)的数据结构,在 Java 中可以使用内置的Queue 接口实现。

Queue 接口定义了许多方法,例如 add()、remove()、peek() 等,可以用于向队列中添加元素、删除元素和获取队列顶端的元素。

数据结构教程java语言描述李春葆程序

数据结构教程java语言描述李春葆程序

数据结构教程java语言描述李春葆程序摘要:1.数据结构教程概述2.Java 语言描述数据结构的优势3.李春葆程序的特点与结构4.程序实例与应用领域5.学习建议与总结正文:数据结构教程是一门计算机科学课程,主要介绍数据结构的基本概念、原理和应用。

数据结构是计算机程序设计的基础,通过对数据进行组织、管理和操作,可以提高程序的效率和性能。

Java 语言作为一种广泛应用的编程语言,以其面向对象的特点,非常适合描述数据结构。

李春葆程序作为数据结构教程的实例,以Java 语言为基础,详细介绍了各种数据结构的应用。

Java 语言描述数据结构的优势在于,它具有良好的跨平台性、可移植性和安全性。

Java 语言支持多线程编程,可以更高效地处理并发问题。

此外,Java 拥有丰富的类库,为数据结构的学习和应用提供了便利。

李春葆程序以实例和应用为导向,涵盖了线性表、栈与队列、树与二叉树、图等数据结构。

每个数据结构都配有详细的说明、实例和操作方法。

程序中使用了许多经典的算法,如排序、查找等,使得学习者可以更好地理解数据结构的实际应用。

程序实例是李春葆程序的一个重要组成部分。

通过阅读和分析这些实例,学习者可以加深对数据结构的理解,提高编程技巧。

此外,李春葆程序还涉及了一些实际应用领域,如数据库、网络编程等,使学习者能够更好地将理论知识应用于实际问题。

在学习数据结构教程时,建议先理解基本概念和原理,然后通过编写程序实例来加深理解。

多进行实际操作,多思考数据结构的优缺点,以及在不同场景下的应用。

通过这样的学习方法,学习者可以更好地掌握数据结构的知识,提高编程能力。

总之,数据结构教程是计算机科学中非常重要的一门课程。

李春葆程序以Java 语言为基础,为学习者提供了一个优秀的实例。

电子课件 数据结构(Java版)--李云平

电子课件 数据结构(Java版)--李云平
模块1 概述
学习目的与要求
重点:
• 理解数据结构的各种基本概念和术语 • 理解线性结构、层次结构和网状结构的结构特点 • 理解数据的逻辑结构、存储结构及运算三方面的概念及相互关系
难点:
• 掌握算法性能(时间和空间)的分析方法。
1.1 什么是数据结构 程序设计的过程,一般遵循以下解决步骤:
分析问题
i为数据元素ai 在线性表中的位序。
【例2.1】某班前五名学生语文成绩(99,98,97,95,90)是线性表,表中每个 数字是一个结点。 【例2.2】一年四季(春,夏,秋,冬)是一个线性表,表中的结点是一个字符。
2.2 线性表的逻辑结构
【例2.3】学生成绩表是一个线性表,表中每一行(一条记录)是一个结点。一条 记录是由学号、姓名、性别、数学成绩和语文成绩5个数据项组成。
结点的存储地址:假设线性表中所有结点的类型相同,设表中每个结点占用L个存储 单元,并以所占的第一个单元的存储地址作为该结点的存储地址。则线性表中第i+1 个结点的存储地址LOC(ai+1)和第i个结点的存储地址LOC(ai)之间满足下列关系:
模块2 线性表
学习目的与要求
重点:
• 掌握顺序表和链表的逻辑描述和存储实现
难点:
• 顺序表和单链表的实现和应用
线性结构
线性结构的特点:
在数据元素的非空有限集中,数据元素是有序的,排在某个数据元 素b之前的数据元素a称为b的直接前驱,而数据元素b称为a的直接后继。 且具有如下特点: (1)存在唯一的一个被称为“第一个”的数据元素。 (2)存在唯一的一个被称为“最后一个”的数据元素。 (3)除第一个之外,集合中的每个数据元素均只有一个直接前驱。 (4)除最后一个之外,集合中的每个数据元素均只有一个直接后继。

java 数据结构面试问题

java 数据结构面试问题

Java 数据结构面试问题
以下是一些可能在Java数据结构面试中出现的问题:
1. 什么是数据结构?
2. 请列举一些常见的数据结构类型。

3. 请解释堆栈(Stack)和队列(Queue)的区别。

4. 请解释数组(Array)和链表(Linked List)的区别。

5. 请解释哈希表(Hash Table)的原理和用途。

6. 请解释树(Tree)和图(Graph)的区别。

7. 请解释二叉树(Binary Tree)和二叉搜索树(Binary Search Tree)的区别。

8. 请解释深度优先搜索(Depth First Search)和广度优先搜索(Breadth First Search)的差异。

9. 请解释哈夫曼编码(Huffman Coding)的原理和应用。

10. 请解释红黑树(Red-Black Tree)的原理和特点。

11. 请解释Trie树(Trie Tree)的原理和用途。

12. 请解释图的表示方法,例如邻接矩阵和邻接表。

13. 请解释拓扑排序(Topological Sorting)的概念和应用。

14. 请解释堆(Heap)的原理和用途。

15. 请解释排序算法中的冒泡排序(Bubble Sort)和快速排序(Quick Sort)。

这只是一些可能的问题,实际面试中可能会有更多的问题。

在准备面试时,建议你熟悉这些数据结构的概念、原理和应用,并能够根据具体问题进行具体分析和解答。

JAVA常用的数据结构和算法

JAVA常用的数据结构和算法

JAVA基本数据结构和排序算法Email: ********************.cnQQ: 4480860061Java容器类1.1 容器作用和概念1.1.1数组数组是一种容器,以线性序列放置对象和基本类型数据,可快速访问数组元素,但不灵活,容量必须事先定义好,不能随着需求的变化而扩容。

基于此JAVA中提供容器类。

1.1.2容器的架构其层次如下图,都是从Object派生而来。

需要注意的是Set、List、Collcetion和Map都是接口,不是具体的类实现。

在Java中提供了Collection和Map接口。

其中List和Set继承了Collection接口;同时用Vector、ArrayList、LinkedList三个类实现List接口,HashSet、TreeSet实现Set接口。

直接有HashTable、HashMap、TreeMap实现Map接口。

List和set都是放单独的对象的,map则是方一个名值对,就是通过一个key找到一个value;list存放东西是有序的,set是没有顺序的;list允许重复存入,set不可以。

1.1.3List接口有序的Collection,此接口用户可以对列表中每个元素的插入位置进行精确地控制,用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素,与Set不同,列表通常允许重复的元素,更确切地讲,列表通常允许满足e1.equals(e2)的元素对e1和e2,并且如果列表本身允许null元素。

其方法主要包括://添加boolean add(E e);void add(int index, E element);boolean addAll(Collection<? extends E> c);boolean addAll(int index, Collection<? extends E> c);//删除boolean remove(Object o);E remove(int index);boolean removeAll(Collection<?> c);//获取某个元素E get(int index);//获取某个元素的索引int indexOf(Object o);int lastIndexOf(Object o);//是否相同boolean equals(Object o);//将某个元素指定添加到某个位置E set(int index, E element);//获取索引范围之内的元素List<E> subList(int fromIndex, int toIndex);//迭代器ListIterator<E> listIterator();ListIterator<E> listIterator(int index);(1)ArrayList底层用数组实现的List,特点,查询效率高,增删效率低,线程不安全。

java的八股文

java的八股文

java的八股文Java是一种现代化的编程语言,也是目前全球最流行的编程语言之一。

它不仅在企业级应用和互联网开发领域得到广泛应用,而且在移动开发、游戏开发、大数据和人工智能等领域也有着重要的地位。

Java的成功离不开其强大的特性和丰富的类库,也离不开Java的八股文。

本文将详细介绍Java的八股文,帮助初学者更好地掌握Java 编程。

一、Java的基本数据类型Java的基本数据类型包括整型、浮点型、字符型、布尔型和引用类型。

其中整型包括byte、short、int和long,浮点型包括float 和double,字符型包括char,布尔型包括boolean。

引用类型包括类、接口、数组等等。

初学者需要掌握这些基本数据类型,了解它们的用途和特点,以便更好地使用Java编程。

二、Java的运算符Java的运算符包括算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符。

初学者需要掌握这些运算符的优先级和使用方法,以便更好地进行Java编程。

例如,算术运算符包括加、减、乘、除和取模等,关系运算符包括等于、不等于、大于、小于、大于等于和小于等于等。

三、Java的控制语句Java的控制语句包括条件语句、循环语句和跳转语句。

初学者需要掌握这些控制语句的语法和使用方法,以便更好地控制程序的流程。

例如,条件语句包括if语句和switch语句,循环语句包括for 循环、while循环和do-while循环等。

四、Java的数组Java的数组是一种重要的数据结构,它可以存储多个同类型的数据元素。

初学者需要掌握数组的声明、初始化、访问和遍历等基本操作,以便更好地使用Java编程。

例如,可以使用以下语句声明和初始化一个整型数组:int[] arr = new int[]{1,2,3,4,5};可以使用以下语句访问数组元素:int a = arr[0];可以使用以下语句遍历数组元素:for(int i=0;i<arr.length;i++){System.out.println(arr[i]);}五、Java的面向对象编程Java的面向对象编程是其最重要的特性之一,也是Java的核心。

数据结构java语言描述

数据结构java语言描述

数据结构java语言描述数据结构是计算机科学中的一门重要课程,它研究如何组织和存储数据,以便于程序的操作和使用。

在现代计算机科学中,数据结构被广泛应用于算法设计、程序设计、数据库系统、网络通信等领域。

本文将以《数据结构Java语言描述》为标题,介绍数据结构的基本概念、分类、常用算法和Java语言实现。

一、基本概念数据结构是指数据元素之间的关系,包括数据元素的类型、组织方式和操作方法。

常见的数据结构有线性结构、树形结构和图形结构。

线性结构是指数据元素之间存在一个前驱和一个后继,例如数组、链表、栈和队列等;树形结构是指数据元素之间存在一个父子关系,例如二叉树、堆和哈夫曼树等;图形结构是指数据元素之间存在多种关系,例如有向图、无向图和带权图等。

数据结构的基本操作包括插入、删除、查找和遍历等。

插入操作是将一个新的数据元素插入到已有数据结构中,删除操作是将一个已有数据元素从数据结构中删除,查找操作是在数据结构中查找一个指定的数据元素,遍历操作是按照一定的方式遍历数据结构中的所有数据元素。

二、分类数据结构可以按照不同的方式进行分类,常见的分类方法包括线性结构、树形结构、图形结构、顺序存储结构和链式存储结构等。

1.线性结构线性结构是指数据元素之间存在一个前驱和一个后继,数据元素之间的关系具有线性的特点。

常见的线性结构包括数组、链表、栈和队列等。

数组是一种线性结构,它是由一组连续的存储单元组成的,每个存储单元存储一个数据元素。

数组的特点是支持随机访问,但插入和删除操作效率较低。

链表是一种线性结构,它是由一组不连续的存储单元组成的,每个存储单元存储一个数据元素和一个指向下一个存储单元的指针。

链表的特点是插入和删除操作效率较高,但访问操作效率较低。

栈是一种线性结构,它是一种后进先出(LIFO)的数据结构,支持插入和删除操作。

栈的应用包括表达式求值、函数调用和回溯算法等。

队列是一种线性结构,它是一种先进先出(FIFO)的数据结构,支持插入和删除操作。

java数据结构期末考试题及答案

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接口,允许对元素进行索引访问。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5/5
for (int i = 0; i < size; i++) if (elem.equals(elementData[i])) return i; } return -1; } 6.假设向 ArrayList 中添加如下方法,写出每个方法的方法体 public boolean addFirst (Object element) public boolean addLast (Object element) public Object removeFirst() public Object removeLast() public Object getFirst ( ) public Object getLast ( )
二、
常见题目
1. 教材上的习题、上机题、常用几个方法的时间复杂度 4.阅读程序,写出运行结果 ArrayList let=new ArrayList(); let.add(“p”); let.add(0, “r”); let.add(“e”); System.out.println(let.indexOf(“p”)); let.remove(1); System.out.println(let.get(1)); System.out.println(let.contains(“r”)); 5.ArrayList 中定义了一个方法,说明该方法在类中正确的方法名称 public int unkown(Object elem) { if (elem == null) { for (int i = 0; i < size; i++) if (elementData[i]==null) return i; } else {
第一章:绪论 1、计算机科技的两大支柱 1、数据结构 2、算法 · 程序 = 数据结构 + 算法 2、数据结构定义: 是一门研究非数值计算的程序设计问题中计算机的操作对 象以及它们之间的关系和操作等等的学科。 数据(Data):是对信息的一种符号表示。 在计算机科学中是指所有能输入到计算机 中并被计算机程序处理的符号的总称。 数据元素(Data Element):是数据的基本单位,在计算机程序中通常作为一个整体 进行考虑和处理。 一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单 位。 数据结构(Data Structure): 是相互之间存在一种或多种特定关系的数据元素的集 合。 3、数据结构主要指逻辑结构和物理结构 数据之间的相互关系称为逻辑结构。通常分为四类基本结构: 集合 结构中的数据元素除了同属于一种类型外,别无其它关系。 线性结构 结构中的数据元素之间存在一对一的关系。 树型结构 结构中的数据元素之间存在一对多的关系。 图状结构或网状结构 结构中的数据元素之间存在多对多的关系。 4、数据结构在计算机中有两种不同的表示方法: 顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑关 系。 链式存储结构:在每一个数据元素中增加一个存放地址的指针,用此指针来表示 数据元素之间的逻辑关系。 5、数据对象:某种数据类型元素的集合。 例:整数的数据对象是{…-3,-2,-1,0,1,2,3,…} 英文字符类型的数据对象是{A,B,C,D,E,F,…} 数据类型:在一种程序设计语言中,变量所具有的数据种类。 6、数据结构的三个方面:
2/2
容器中的元素类型都为 Object。 从容器取得元素时, 必须把它转换成原来的类型。 第四章:递归 1、 递归的定义 若一个对象部分地包含它自己, 或用它自己给自己定义, 则称 这个对象是递归的;若一个过程直接地或间接地调用自己, 则称这个过程是递 归的过程。 第五章:数组列表 1、线性表是由n(n≥0)个相同类型的数据元素a1,a2,…,an组成的有限序列, 记作:LinearList={a1,a2,…,an} 其中,n 表示线性表的元素个数,称为线性表的长度。 2、线性表的顺序存储结构:是用一组连续的存储单元顺序存放线性表的数据元 素,数据元素在内存的物理存储次序与它们在线性表中的逻辑次序是一致的, 即数据元素 ai 与其前驱数据元素 ai-1 及后继数据元素 ai+1 的位置相邻。 5、为什么需要串行化:希望 ArrayList 对象保存到文件中,以便于恢复使用。 6、如何实现类可串行化:见练习 package java.io; public interface Serializable {//标记接口 } 7、迭代器是允许以一致的方式对集合对象的元素进行访问的对象。 迭代器对象一旦发现另一个对象在结构上修改这一集合,就马上会报错。这是因 为一旦你开始对一个 ArrayList 对象进行迭代,就不能再修改这个 ArrayList 完 整性。因此弹出 ConcurrentModificationException
4/4
(9) 7. 理解 clone 方法的含义,并对浅克隆与深度克隆进行说明及图示
为什么需要克隆:希望获得一个副本,即另一份拷贝。 如何实现类可克隆 package ng; public interface Cloneable { //标记接口 } Eg: public Object clone() { try { ArrayList v = (ArrayList)super.clone(); // copies size v.elementData = new Object[size]; System.arraycopy(elementData, 0, v.elementData,0, size); v.modCount = 0; return v; } catch (CloneNotSupportedException e) { // this shouldn't happen, since we are Cloneable throw new InternalError(); } }
7、算法用抽象的语言描述解决特定问题的每一步的操作。程序是计算机能理解 和执行的指令序列。一个程序实现一个算法。算法和程序的区别是算法的执行 是有穷的,而程序的执行可以是无限的。 8、时间复杂度:
1/1
9、1、什么是集合 通常情况下, 把具有相同性质的一类东西, 汇聚成一个整体, 就可以称为集合。 比如,用 Java 编程的所有程序员,全体中国人等。 2、什么是集合框架 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合 框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。 3、集合框架对我们编程有何助益:它减少了程序设计的辛劳、它提高了程序速 度和质量。 10、Collection 接口是一组允许重复的对象。 Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。 List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,不会重新 排列。 Map 接口是一组成对的键-值对象,即所持有的是 key-value pairs。Map 中不能 有重复的 key。拥有自己的内部排列机制。
1. 掌握 Collection 接口含义及方法
2. 掌握 Collection 接口与 List 接口的关系:见练习本
3/3
3. 掌握 ArrayList 与数组之间的关系:ArrayList 对数组进行了排序,见练习本 4. 从 用 户 角 度 如 何 理 解 ArrayList ? 从 开 发 者 角 度 如 何 理 解 ArrayList ? ArrayList 比数组多了一些增减数据的方法。 5. 掌握 ArrayList 常用方法的含义及使用方法。见书 P121 6. 会实现 ArrayList 的顺序存储简化版, 包括最常用的方法 size(); isEmpty(); contains(Object o) ; indexOf(Object elem) ; add(Object o) ; remove(Object o) ; clear(); get (int index) ; set (int index, Object element)等 (1) public int size(){ return size; } (2) public boolean isEmpty(){ if(size==0) return true; else return false; } (3) public Boolean contains(Object o){ return indexOf(o)>=0; } (4)public int indexOf(Object elem){ if (elem == null) { for (int i = 0; i < size; i++) if (elementDate[i]==null) return i; } else { for (int i = 0; i < size; i++) if (elem.equals(elementDate[i])) return i; } return -1; } (5)public boolean add(Obje3;1); elementDate[size++]=o; return true; } (6)public Object remove(int index){ if(index<0||index>=size) return null; Object temp=elementDate[index]; for(int j=index;j<size;j++){ elementDate[j]=elementDate[j+1]; } size--; return temp; } (7)public void clear(){ modCount++; for(int i=0;i<size;i++) elementData[i]=null; size=0; } (8)public Object get(int index){ if(index<0||index>=size) return null; return elementDate[index]; }
相关文档
最新文档