zoukankan      html  css  js  c++  java
  • 20165320 第十周课上测试补做

    相关知识点总结:

    1.LinkedList泛型类创建一个链表对象

    LinkedList<String> mylist = new LinkedList<String>();
    

    2.向链表中依次添加结点

    mylist.add();
    

    3.链表的遍历

    LinkedList类中的get(int index)方法将返回当前链表中第index个结点中的对象
    
    链表对象可以使用iterator()方法获取一个Iterator对象,该对象是针对当前链表的迭代器。
    

    4.排序与查找

    public static sort(List<E>list)
    
    该方法可将list中的元素按升序排列
    
    int binarySearch(List<T>list,T key,CompareTo<T> c)
    
    使用折半查找list是否含有和参数key相等的元素
    
    还可以通过Comparable接口规定对象的大小比较
    
    1. 链表相关的概念

      单链表:每个结点含有一个数据和下一个结点的引用

      双链表:每个结点含有一个数据和下一个结点的引用以及上一个结点的引用

      Collections类可以通过调用sort方法来进行排序

    课上内容补做截图:
    一、

    • 在数据结构和算法中,排序是很重要的操作,要让一个类可以进行排序,有两种方法:
    • 有类的源代码,针对某一成员变量排序,让类实现Comparable接口,调用Collection.sort(List)
    • 没有类的源代码,或者多种排序,新建一个类,实现Comparator接口 调用Collection.sort(List, Compatator)

    运行截图:

    二、补充MyList.java的内容,提交运行结果截图(全屏)

    错因:一开始实用链表的Linked相关方法进行操作,之后才发现需要运用Node进行结点的相关操作

    运行截图:

    书上代码分析:

    15.1:声明一个泛型类Cone,计算体积的时候只关心它的底能否计算面积,和底的具体形状没有关系,所以求体积时用泛型做底,而且泛型变量只能调用从object类继承或重写的方法,例子中的底面积需要用tostring()方法。

    15.2:该例子是为了比较get(int index)方法与iterator()方法遍历链表所需要的时间。因为LinkedList的存储结构不是顺序结构,所以链表调用get(int index)方法所要的时间长,所以需要用迭代器。

    15.3:这个例子是使用老版本JDK的LinkedList,创建一个新链表,添加元素进行遍历,一个是使用get index,一个是使用迭代器。

    15.4:例子4是通过Comparable接口规定的大小关系来进行对链表的排序,最后再用Collections类调用sort方法排序。该程序中在 compareTo方法里返回的是height的大小比较,所以链表中的对象是按照height的大小来决定对象之间的大小关系。

    15.5:该例子就是使用了Collections类中的洗牌算法还有旋转算法对链表进行洗牌还有旋转,再分别将它们遍历输出看变化。

    15.6:该例子是使用堆栈输出一个递归序列,算法是后一项等于前两项的和,也就是Fibonacci数列。 重要的操作就是

    压栈和弹栈: 
    
    push 压栈
    
    pop 弹栈
    

    15.7:该例子是一个英语单词查询的GUI程序,用户在界面的一个文本框中输入一个英文单词,另一个文本框显示单词的翻译

    15.8:该例子首先是创建了一个树集,在树集里面增添了四个元素,而树集和链表不一样,添加的时候它就按照对象的大小进行添加的。

    90 赵一
    
    66 钱二
    
    86 孙三
    
    76 李四
    

    15.9:该例子是使用TreeMap分别按学生的英语成绩和数学成绩排序结点,不仅存储了数据,还存储了与其相关联的关键字(即数学和英语)。

    15.10:该例子实现了自动装箱与自动拆箱的功能。

    程序允许把一个基本数据类型添加到类似链表等数据结构中,系统会自动完成基本类型到相应对象的转换,获取时系统自动完成对象到基本类型的转换。
    

    书上编程题目:

    1.使用堆栈结构输出an的若干项,其中an=2an-2,a1=3,a2=8。

    解法:按照15.7的例题修改栈一开始的两个元素,再修改temp的计算方法就行

    2.编写一个程序,将链表中的学生英语成绩单存放到一个树集中,使得按成绩自动排序,并输出排序结果。

    解法:按照15.8的例题,用两个迭代器,一个链表的,一个是树集的,分别将链表中的Student对象添加到树集中,再通过树集的迭代器挨个打印出来

    3.有10个U盘,有两个重要属性:价格和容量。编写一个应用程序,使用TreeMap<K,V>类,分别按照价格和容量排序输出10个U盘的详细信息。

    解法:按照15.9的例题,将英语和数学修改成U盘的容量和价格就行了

  • 相关阅读:
    DOM
    js中字符串常规操作
    placeholer改变默认灰色
    css重置reset.css
    倒计时跳转
    手机中间四位用*代替
    animation
    过渡
    flex布局
    css3几个新属性
  • 原文地址:https://www.cnblogs.com/Gst-Paul/p/9000102.html
Copyright © 2011-2022 走看看