class Main {
public static void main(String[] args) {
int[] a = {1, 2, 3, 4, 5};
int[] b = {10};
LinkList L = new LinkList();
L.CreateLinkList(a);
L.PrintLinkList();
L.InsertNode(7, 5);
L.PrintLinkList();
L.DeleteNode(2);
L.PrintLinkList();
L.DeleteNode(5);
L.PrintLinkList();
L.Count();
}
}
class Node{
int num;
Node node;
public Node() {}
public Node(int num) {
this.num = num;
}
}
class LinkList {
Node Head;
public LinkList() {
Head = new Node();
Head.node = null;
}
void CreateLinkList(int[] NumList) {
Node p = Head;
for (int i = NumList.length - 1; i > -1; i--) {
Node s = new Node(NumList[i]);
s.node = p.node;
p.node = s;
}
}
void InsertNode(int num, int position) {
int j = 0;
Node p = Head.node;
while (p != null && j < position - 1) {
j++;
p = p.node;
}
if (p == null || j > position) {
System.out.println("the position is wrong");
return;
}
Node r = new Node(num);
r.node = p.node;
p.node = r;
}
void DeleteNode(int position) {
int j = 0;
Node p = Head.node;
while(p.node != null && j < position - 1) {
j++;
p = p.node;
}
if (p.node == null || j > position) {
System.out.println("Wrong position");
return;
}
Node r = p.node;
p.node = r.node;
System.out.println("the " + r.num + " is deleted");
}
void PrintLinkList() {
Node p = Head.node;
while(p.node != null) {
System.out.print(p.num);
System.out.print(" -> ");
p = p.node;
}
System.out.println(p.num);
}
void Count() {
int j = 0;
Node p = Head.node;
while(p != null) {
j++;
p = p.node;
}
System.out.println(j);
}
}