第十周课下作业(补做)
课下作业(补做)
相关知识点的总结
排序
程序中经常会遇到需要对链表按照某种大小关系排序,Collection
类提供的对于排序和查找的类方法如下:
public static sort(List<E> list)
----将list中的元素按升序排列
int binarySearch(List<T> list,T key,CompareTo<T> c)
---使用折半查找法查找list是否含有和参数key相等的元素。
- 有类的源代码,针对某一成员变量排序,让类实现
Comparable
接口,调用Collection.sort(List)
- 没有类的源代码,或者多种排序,新建一个类,实现
Comparator
接口 调用Collection.sort(List, Compatator)
单链表
涉及到单链表的基本操作有如下:
- int initList(linkList *); 初始化一个单链表,具有头指针,头结点,头结点->next=NULL;
- int createListHead(linkList *, int n); 头插法创建一个链表,链表长度为n;
- int createListTail(linkList *, int n); 尾插法创建一个链表,链表长度为n;
- int getlength(linkList *); 获取单链表的长度;
- int printList(linkList *); 打印整个链表;
- int getElem(linkList *,int i,ElemType *); 获取链表中第i个位置处节点的数据元素;
- int insertList(linkList *, int i, ElemType data); 在链表的指定位置(i节点)插入一个节点,i的范围为1~length(链表总长度);
- int insertListTail(linkList *, ElemType data); 给链表追加一个节点,在最末尾处增加;
- int deleteList(linkList *, int i, ElemType *data); 删除指定位置(i节点)处的节点,i的范围为1~length(链表总长度);
- int clearList(linkList *); 删除整个链表,使头结点->next=NULL;
课上内容的补做,结果截图
1. 排序
针对下面的Student类,使用Comparator编程完成以下功能:
1. 在测试类StudentTest中新建学生列表,包括自己和学号前后各两名学生,共5名学生,给出运行结果(排序前,排序后)
2. 对这5名同学分别用学号和总成绩进行增序排序,提交两个Comparator的代码
2. 单链表
public class MyList {
public static void main(String [] args) {
//选用合适的构造方法,用你学号前后各两名同学的学号创建四个结点
//把上面四个节点连成一个没有头结点的单链表
//遍历单链表,打印每个结点的
//把你自己插入到合适的位置(学号升序)
//遍历单链表,打印每个结点的
//从链表中删除自己
//遍历单链表,打印每个结点的
}
}
教材第十五章的编程题目
(1)使用堆栈结构输出an的若干项,其中an=2an-1+2an-2,a1=3,a2=8
(2)编写一个程序,将链表中的学生英语成绩单存放到一个树集中,使得按程序自动排序,并输出排序结果
(3)有10个U盘,有两个重要的属性:价格和容量。编写一个应用程序,使得TreeMap<K,V>类,分别按照价格和容量排序输出10个U盘的详细信息。