package link;
import java.util.Arrays;
public class MyLinked {
public Node head=new Node();
public int size=0;
public class Node{
public Object data;
public Node next;
}
public void add(Object obj)
{
Node node=head;
while (node.next!=null){
node=node.next;
}
Node newNode=new Node();
newNode.data=obj;
node.next=newNode;
size++;
}
public void insert(int index,Object obj){
Node node=head;
if (index>size||index<0){
System.out.println("输入错误!");
}
for (int i = 0; i < index; i++) {
node=node.next;
}
Node newNode=new Node();
newNode.data=obj;
newNode.next=node.next;
node.next=newNode;
size++;
}
public Object remove(int index){
Node node=head;
if (index>size||index<0){
System.out.println("输入错误!");
}
for (int i = 0; i < index; i++) {
node=node.next;
}
Object ob=node.next.data;
node.next=node.next.next;
size--;
return ob;
}
public void delete(Object obj){
Node node=head;
int count=0;
for (int i = 0; i <= size; i++) {
if (node.data!=obj){
node=node.next;
if (count==size){
System.out.println("不正确!");
System.exit(0);
}
}
else {
break;
}
count++;
}
node.next=node.next.next;
size--;
}
public Object change(int index,Object obj){
Node node=head;
if (index>size||index<0){
System.out.println("输入错误!");
}
for (int i = 0; i <= index; i++) {
node=node.next;
}
Object ob=node.data;
node.data=obj;
return ob;
}
public Object find(int index){
Node node=head;
if (index>size||index<0){
System.out.println("输入错误!");
}
for (int i = 0; i <= index; i++) {
node=node.next;
}
return node.data;
}
public int size(){
return size+1;
}
public Boolean haveObj(Object obj){
Node node=head;
while (node.next.data!=obj){
node=node.next;
return true;
}
return false;
}
public Boolean isEmpty(){
Node node=head;
while (node.next.data!=null){
node=node.next;
return false;
}
return true;
}
public void print(){
Node node=head;
for (int i = 0; i <= size; i++) {
System.out.print(node.data+" ");
node=node.next;
}
System.out.println();
}
public String toString(){
StringBuilder sb=new StringBuilder("[");
Node node=head.next;
while (node!=null){
sb.append(node.data+",");
node=node.next;
}
sb.deleteCharAt(sb.length()-1);
sb.append("]");
return sb.toString();
}
}
cs