目录
/**
* 单链表的使用,
* 游戏英雄排行榜
* 功能:增删改查
* 缺陷:删改功能对不按顺序编辑的链表无用
*
* 题1:求单链表中有效节点的个数
* 题2:查看倒数第k个节点
*/
//主函数
public class Main {
public static void main(String[] args) {
//创建节点
Hero h1 = new Hero(1, "貂蝉", "女");
Hero h2 = new Hero(2, "王昭君", "女");
Hero h3 = new Hero(3, "狂铁", "男");
Hero h4 = new Hero(4, "马可波罗", "男");
//创建链表
SingleLinked s = new SingleLinked();
s.addHero(h2);
s.addHero(h3);
s.addHero(h4);
s.addHero(h1);
//方法使用
System.out.println("未排序————————————————————");
s.show();
SingleLinked s2 = new SingleLinked();
s2.addByOrder(h2);
s2.addByOrder(h3);
s2.addByOrder(h4);
s2.addByOrder(h1);
System.out.println("已排序————————————————————");
s2.show();
Hero h5 = new Hero(4, "鲁班", "男");
s2.Alter(h4, h5);
System.out.println("信息修改————————————————————");
s2.show();
System.out.println("删除————————————————————");
s2.Del(3);
s2.show();
System.out.println("t1:s2的链表长为"+s2.Count());
System.out.println("t1:s2的倒数第3个为"+s2.Find(3));
}
}
// 节点类
class Hero {
// 节点信息
public String name;
public int no;
public String sex;
public Hero next; // 节点的指向下一个
public Hero(int no, String name, String sex) {
this.name = name;
this.no = no;
this.sex = sex;
}