链表是有序的列表,但是它在内存中是存储如下:
小结:
1)链表是有序列表。
2)链表的数据,在内存空间不一定是连续分布的。
分类:
- 带头节点的链表。
链表的头有一个head结点,该结点不存放具体的数据,只是为了操作方便而设计的这个结点。
- 不带头节点的链表。
1.单链表的应用实例
使用带head头的单向链表实现-水浒英雄排行榜管理。
1)完成对英雄人物的增删改查,注:删除和修改,查找可以考虑学员独立完成。
2)第一种方法在添加英雄时,直接添加到链表的尾部。
3)第二种方式在添加英雄时,根据排名将英雄插入到指定位置。(如果有这个排名,则添加失败,并给出提示)
代码实现
package chapter18.linkedList
import util.control.Breaks._
object singleLinkedListDemo {
def main(args: Array[String]): Unit = {
//测试单向链表的添加和遍历
val hero1 = new HeroNode(1, "宋江1", "及时雨1")
val hero2 = new HeroNode(3, "宋江3", "及时雨3")
val hero3 = new HeroNode(4, "宋江4", "及时雨4")
val hero4 = new HeroNode(2, "宋江2", "及时雨2")
//创建一个单向链表
val singleLinkedList = new SingleLinkedList
singleLinkedList.add(hero1)
singleLinkedList.add(hero2)
singleLinkedList.add(hero3)
//singleLinkedList.add(hero4) //无序加入
singleLinkedList.add2(hero4) //有序加入
singleLinkedList.list()
println("--------------------修改------------