public class Node {
int data;
Node next;
public Node(int data) {
next = null;
this.data = data;
}
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
/**
* @time 单向链表
*/
public class LinkdList02 {
private Node head; //头节点
private int length; //长度
public int getLength() {
return length;
}
public LinkdList02() {
head = new Node(0);
length = 0;
}
/**
* 插入
* @param index
* @param data
* @return
*/
public boolean insert(int index, int data){
if (index > length || index < 0)
return false;
Node curNode = head;
Node newNode = new Node(data);
Node parent = null;
int flag = 0;
while (curNode.next != null){
if (flag < index){
flag++;
parent = curNode;
curNode = curNode.next;
}else {
newNode.next = curNode;
parent.next = newNode;
return true;
}
}
return false;
}
/**
* 删除
* @param data
* @return
*/
public boolean delete(int data){
Node curNode = head;
Node parent = null;
while (curNode.next != null){
parent = curNode;
curNode = curNode.next;
if (curNode.data == data){
parent.next = curNode.next;
return true;
}
}
return false;
}
/**
* 查找
* @param data
* @return
*/
public boolean search(int data){
Node curNode = head;
while (curNode.next != null){
curNode = curNode.next;
if (curNode.data == data)
return true;
}
return false;
}
/**
* 插入
* @param data
* @return
*/
public boolean insert(int data){
Node newNode = new Node(data);
Node curNode = head;
while (curNode.next != null){
curNode = curNode.next;
}
length++;
curNode.next = newNode;
return false;
}
/**
* 输出
*/
public void print(){
Node curNode = head;
while (curNode.next != null){
curNode = curNode.next;
System.out.println(curNode.data);
}
}
/**
* 判断是否存在链表
* @return
*/
public boolean isEmpty(){
if (head.next == null)
return true;
return false;
}
public static void main(String[] args) {
LinkdList02 list02 = new LinkdList02();
list02.insert(1);
list02.insert(2);
list02.insert(3);
list02.insert(4);
list02.delete(4);
list02.insert(2,5);
list02.print();
if (list02.isEmpty())
System.out.println("该链表不存在" + list02.getLength());
else
System.out.println("该链表存在" + list02.getLength());
}
}