zoukankan      html  css  js  c++  java
  • 20165309 第十周课下作业

    20165309 第十周课下作业

    相关知识点的总结

    1.排序

    在数据结构和算法中,排序是很重要的操作,要让一个类可以进行排序,有两种方法:

    • 有类的源代码,针对某一成员变量排序,让类实现Comparable接口,调用Collection.sort(List)

    • 没有类的源代码,或者多种排序,新建一个类,实现Comparator接口 调用Collection.sort(List, Compatator)

      package java.util;
      
      public interface Comparator<T> {
      
          int compare(T o1, T o2);
      
          boolean equals(Object obj);
      }
      

    2.单链表

    • 定义:单链表是指每一个结点只包含一个指针域的链表,这个指针指向当前节点的逻辑上的下一个节点,即该指针存储着下一个节点的地址。
      public class LNode {
      
          public int value;
      
          public LNode next;
      }
      
    • 在节点p后面插入一个元素e:
      //创建数据项为x的新结点
      LNode q = new LNode();
      q.value = x;
      q.next = null;
      
      //插入开始
      q.next = p.next;//设置q的后继为p当前的后继
      p.next = q;//更新p的后继为q
      
    • 删除节点p后面的节点:
      int x = p.next.value;//保存要删除的节点内容
      p.next = p.next.next;//直接更新p的后继为它当前后继的后继
      
    • 单链表的常见操作
      • 打印链表
      • 头插法建立链表
      • 尾插法建立链表
      • 向链表某位置插入元素
      • 从链表某位置删除元素
      • 链表中按值查找元素
      • 删除链表中所有值为key的节点
      • 删除链表中有重复的元素,对于重复多次的元素,保留一次
      • 删除链表中有重复的元素,不保留

    课上内容的补做

    排序

    • 针对下面的Student类,使用Comparator编程完成以下功能:
    1. 在测试类StudentTest中新建学生列表,包括自己和学号前后各两名学生,共5名学生,给出运行结果
    2. 对这5名同学分别用学号和总成绩进行增序排序
    • 运行结果如下:

    单链表

    • 补充MyList.java的内容
    • 运行结果如下:

    代码链接

    教材十五章代码分析

    • 15_1


    • 15_2(这是需要歪一下头才能看的....)
    • 15_4

    • 15_5
    • 15_6
    • 15_9

    • 代码链接

    教材第十五章编程题目的补做

    • 使用堆栈结构输出an的若干项,其中an=2an-1+2an-1,a1=3,a2=8。
    • 编写一个程序,将链表中的学生英语成绩单存放到一个树集中,使得按成绩自动排序,并输出排序结果。
    • 有10个U盘,有两个重要的属性:价格和容量。编写一个应用程序,使用TreeMap< K,V >类。
    • 代码链接
  • 相关阅读:
    J Identical Trees(求俩个树转化所需的最小代价,hash判同构,费用流求转移代价)
    I Tournament(俩人一组,构造最少排队总时间)
    D
    purfer序列(有关度数与生成树个数情况)
    博客园自定义样式
    莫比乌斯知识点整理
    随笔日记
    牛客小白月赛16
    Codeforces Round #555 (Div. 3)
    Codeforces Round #553 (Div. 2)
  • 原文地址:https://www.cnblogs.com/wsj-wsj-wsj/p/8998189.html
Copyright © 2011-2022 走看看