20165210 单链表课下补做
20165210 单链表
要求:
数据结构-单链表
参见附件,补充MyList.java的内容,提交运行结果截图(全屏)
课下推送代码到码云
public class MyList {
public static void main(String [] args) {
//选用合适的构造方法,用你学号前后各两名同学的学号创建四个结点
//把上面四个节点连成一个没有头结点的单链表
//遍历单链表,打印每个结点的
//把你自己插入到合适的位置(学号升序)
//遍历单链表,打印每个结点的
//从链表中删除自己
//遍历单链表,打印每个结点的
}
}
public class Node
{
public T data; //数据域,存储数据元素
public Node
public Node(T data, Node<T> next) //构造结点,data指定数据元素,next指定后继结点
{
this.data = data; //T对象引用赋值
this.next = next; //Node<T>对象引用赋值
}
public Node()
{
this(null, null);
}
public String toString() //返回结点数据域的描述字符串
{
return this.data.toString();
}
}
实验代码:
import java.util.*;
class Stu implements Comparable{
int id;
String name;
Stu(String n, int i){
name=n;
id=i;
}
public int compareTo(Object b){
Stu st=(Stu)b;
return (this.id-st.id);
}
}
public class MyList {
public static void main(String [] args) {
//选用合适的构造方法,用你学号前后各两名同学的学号创建四个结点
LinkedList<Stu> list=new LinkedList<>();
list.add(new Stu("孔月",5208));
list.add(new Stu("陈思兵",5209));
list.add(new Stu("丁奕",5211));
list.add(new Stu("任胤",5212));
//把上面四个节点连成一个没有头结点的单链表
Iterator<Stu> iter=list.iterator();
//遍历单链表,打印每个结点的
System.out.println("初始单链表为:");
while (iter.hasNext()){
Stu st=iter.next();
System.out.println(st.id+" "+st.name);
}
//把你自己插入到合适的位置(学号升序)
list.add(new Stu("刘雨坤",5210));
Collections.sort(list);
//遍历单链表,打印每个结点的
iter=list.iterator();
System.out.println("插入自己的学号和姓名以后,单链表为:");
while (iter.hasNext()){
Stu st=iter.next();
System.out.println(st.id+" "+st.name);
}
//从链表中删除自己
list.remove(2);
iter=list.iterator();
//遍历单链表,打印每个结点的
System.out.println("删除自己的学号和姓名以后,单链表为:");
while (iter.hasNext()){
Stu st=iter.next();
System.out.println(st.id+" "+st.name);
}
}
}
代码链接:
https://gitee.com/BESTI-IS-JAVA-2018/20165210lyk/blob/master/kexiaxiti/Mylist.java