package com.data;
public class MyLink {
private Node head;
public MyLink(){
head=null;
}
public void addNode(int key,int value){
if (head==null){
head= new Node(key, value);
}else {
Node current=head;
while (current.next!=null){
current=current.next;
}
current.next= new Node(key, value);}
}
public int getNode(int key){
Node current=head;
if (current.key==key){
return current.value;
}else {
current=head.next;
while (current.key!=key){
current=current.next;}}
return current.value;}
public void view(){
Node current=head;
while (current!=null){
System.out.println(current.key+","+current.value);
current=current.next;
}}
public boolean romes(int key){
boolean flag=false;
Node current=head;/*临时的当前的节点*/
Node parent;/*临时的前序节点*/
if (head==null){
flag=false;
}else if (key==head.key){
head=head.next;
flag=true;
}else {
current=head.next;
parent=head;
while (current.key!=key){
current=current.next;
parent=parent.next;
}
if (current!=null){
parent.next=current.next;
flag=true;
}}
return flag;
}
public boolean insertNode(Node newNode,int index){
Node preNode=head;
if (index==0){
newNode.next=preNode;/*把头节点赋值给头节点的下一个节点*/
head=newNode;/*让传入的新节点为当前的头节点*/
return true;
}else {
for (int i = 0; i <index-1; i++) {
preNode=preNode.next;/*拿到每一个节点*/
}
newNode.next=preNode.next;/*把下一个节点赋值给新的节点的下一个节点*/
preNode.next=newNode;/*把新的节点放到头节点的下一个节点*/
}
return true;
}
}
自定义链表
于 2023-09-25 12:30:53 首次发布