链表(Linked List)
链表是有序的列表,(逻辑、本质)是有序的,如图2;但存储的形式如图1,节点a1,a2,a3…之间不一定是连续存储。
添加方法1:addLinkedList(),顺序插入
添加方法2:addByOrder(),以编号(no)的方式添加,即使在测试的时候 添加的顺序不是升序的,也能以正确的顺序输出。
过程:
原先:head–>heroNode数据1–>heroNode数据3
添加:head–>heroNode数据1–>heroNode数据2–>heroNode数据3
1)找heroNode2的位置
while (true) {
// 若链表没有元素,直接插入
if (temp.next == null) {
break;
} else if (temp.next.no > heroNode.no) { // 找到了第一个比heroNode2.no大的数据
break;
} else if (temp.next.no == heroNode.no) {
flag = true; // 已有相同的编号,返回“插入失败”
}
temp = temp.next;
}
2)把heroNode2插入的代码:
heroNode2.next=temp.next; // heroNode2后一个元素 连接好
temp.next=heroNode2 // heroNode2前一个元素连接好