【单链表】单链表的增删改查

35 阅读1分钟

}

单链表类

package LinkedList.SingleLinkedList;

public class HeroLinkedList {

// 头节点是不变的,头节点没有数据。

private HeroNode head = new HeroNode(0, "", "");

// 定义添加节点的方法

public void add(HeroNode heroNode) {

//添加一个辅助节点 用于遍历

HeroNode temp = head;

while (true) {

if (temp.next == null) {

break;

}

temp = temp.next;

}

temp.next = heroNode;

}

//修改节点数据

public void upData(HeroNode newheronode){

if (head.next==null){

System.out.println("链表为空,修改失败");

return;

}

HeroNode temp = head.next;

boolean flag = false;

while (true){

if (temp.next==null){

break;

}if (temp.number== newheronode.number){

flag =true;

break;

}

temp = temp.next;

}

if (flag){

temp.heroName = newheronode.heroName;

temp.name = newheronode.name;

}else {

System.out.println("没有找到");

}

}

//删除节点

public void del(int no){

HeroNode temp = head;

boolean flag = false;

while (true){

if (temp.next==null){

break;

}if (temp.next.number == no){

flag = true;

break;

}

temp= temp.next;

}

if (flag){

temp.next = temp.next.next;

}else {

System.out.println("没有找到这和节点");

}

}

public void addByOrder(HeroNode heroNode){

HeroNode temp = head;

boolean flag = false;//标记是否已经存在相同序号的存在

while (true){

if (temp.next==null){

break;

}else if(temp.next.number>heroNode.number){

break;

}else if (temp.next.number== heroNode.number){

flag=true;

break;

}

temp = temp.next;

}

if (flag){

System.out.println("该节点已经存在");

}else {

heroNode.next = temp.next;

temp.next = heroNode;

}

}

/*

public void show(){

if (head.next==null){

System.out.println("链表为空");

return;

}

HeroNode temp = head.next;

while (true){

if (temp == null) {

break;

}

System.out.println(temp);

temp = temp.next;

}

}

*/

public void show() {

if (head.next == null) {

System.out.println("链表为空");

return;

}

HeroNode temp = head.next;

while (true) {

System.out.println(temp);

if (temp.next == null) {

break;

}

temp = temp.next;

}

}

}

测试类

package LinkedList.SingleLinkedList;

public class SingleLinkedList {

public static void main(String[] args) {

HeroNode hero1 = new HeroNode(0,"宋江","a");

HeroNode hero2 = new HeroNode(1,"s","s");

HeroNode hero3 = new HeroNode(2,"d","d");

HeroNode hero4 = new HeroNode(3,"w","w");

HeroLinkedList linkedList = new HeroLinkedList();

// linkedList.add(hero1);

// linkedList.add(hero2);

// linkedList.add(hero3);

// linkedList.add(hero4);

HeroNode newheronode = new HeroNode(4,"gggg","sss");

linkedList.addByOrder(hero1);

linkedList.addByOrder(hero3);

linkedList.addByOrder(hero2);

linkedList.addByOrder(hero4);

linkedList.show();

System.out.println("--------");

// linkedList.upData(newheronode);

linkedList.del(3);

linkedList.del(0);

linkedList.del(1);

linkedList.del(2);

linkedList.show();

} }