- 0
- 0
- 约6.73千字
- 约 56页
- 2019-09-06 发布于广东
- 举报
P263【例12-2】LinkedList常用方法 使用Iterator类遍历链表 迭代器(Iterator),又叫做游标(Cursor)。它提供了遍历访问容器对象中各个元素的方法 由容器产生一个对应的迭代器: Iterator 容器对象名.iterator() 迭代器遍历元素的方法: Boolean hasNext():是否仍有元素可以迭代 Object next():返回迭代的下一个元素。 void remove():移除容器中的最后一个元素。 P265【例12-3】把学生的成绩存放在一个链表中,并遍历链表。 程序运行后的效果如下所示: import java.util.*; class StackOne { public static void main(String args[]) { Stack mystack = new Stack(); mystack.push(new Integer(1)); mystack.push(new Integer(2)); mystack.push(new Integer(3)); mystack.push(new Integer(4)); mystack.push(new Integer(5)); mystack.push(new Integer(6)); while (!(mystack.empty())) { Integer temp = (Integer) mystack.pop(); System.out.print( + temp.toString()); } } } 【例12-5】将数字1,2,3,4,5,6压入堆栈 12.2 栈Stack 栈(Stack)是一种仅限定在表尾进行插入和删除运算的线性表,是一种后进先出(LIFO)的数据结构。 只能在一端进行输入或输出数据的操作 表尾称为栈顶top,表头称为栈底bottom。向堆栈中输入数据的操作称为“压栈”,从栈中输出数据的操作称为“弹栈”。 栈的物理存储可以用顺序存储结构,也可以用链式存储结构。 12.2.1 栈的常用方法 使用java.util包中的Stack类创建一个堆栈对象 Stack myStack=new Stack(); public Object push(Object data) public Object pop() public boolean empty() public object peek() public int search(Object data) 递归是一种很消耗内存的算法,我们可以借助堆栈消除大部分递归,达到和递归算法同样的目的。 P271 例12-6 使用stack 输出Fibonacii整数序列 12.3 树集TreeSet 树集是由一些节点对象组成的数据结构,节点按着树形一层一层的排列。 树集是个有序集合,可以按照任何顺序将元素插入该集合,该元素将被纳入它的相应的排序位置;当迭代通过该集合时,各个值将自动按照排序后的顺序输出; 由java.util.TreeSet类创建的对象称为树集。 TreeSet类是实现Set接口的类 12.3.1创建树集 java.util包中的TreeSet可用来创建一个树集, TreeSet mytree=new TreeSet(); 然后使用add方法为树集添加节点: mytree.add(boy); mytree.add(apple); mytree.add(girl); add 方法增加节点时,节点会按其存放的数据的字典序一层一层地依次排列,在同一层中的节点从左到右按字典序递增排列,下一层的都比上一层的小。 12.3.2 定义对象的比较器 很多对象不适合用字典序进行比较,在创建树集时可自己规定节点按着什么样的“大小”顺序排列。 假如我们有四个学生对象,他们有姓名和成绩,我们想把这四个对象做为一个树集的节点,并按着成绩的高低排列节点,而不是按着姓名的字典序排列节点。 1.学生类必须实现Comparable功能接口 Comparable接口中有一个方法: public int compareTo(Object b); 通过实现接口的这个来规定创建的对象的大小关系,如下所示。 Java规定: pareTo(b)=0时,称二者相等; pare(b)0时,称a大于b; pare(b)0时,称a小于b。 public class NewStudent implements Comparable { int english = 0; String name; NewStudent(int e, String n) { e
原创力文档

文档评论(0)