单链表
-
单链表的逻辑结构:
-
单链表在内存中的存储:
小结:
1)链表是以结点的方式来存储,是链式存储
2)每个结点包括data域和next域(指向下一个结点)
3)链表的各个结点不一定是链式存储,逻辑结构上连续,物理结构上不一定连续
4)根据实际需求来确定链表是否需要头结点 -
单链表的创建和遍历
添加操作:
// 添加结点到链表(直接添加到链表的最后)
public void add(HeroNode heronode) {
// 因为头结点不能动,辅助指针帮忙遍历
HeroNode temp = firstnode;
while (true) {
// 找到链表的最后
if (temp.next == null) {
break;
}
temp = temp.next;
}
// 当退出while循环时,就找到了链表的最后
// 将最后这个结点的next指向新结点
temp.next = heronode;
}
遍历:
// 显示链表
public void list() {
// 判断链表是否为空
if (firstnode.next == null) {
System.out.println("链表为空");
return;
}
// 因为头结点不能动,所以需要一个辅助指针
HeroNode temp = firstnode.next;
while (true) {
// 判断链表是否到最后
if (temp == null) {
break;
}
// 输出结点的信息
System.out.println(temp);
temp = temp.next;
}
}
对添加的优化(根据no添加到指定位置)&#x