线性链表
public class LinkList{
Node head;
Node tail;
public LinkList(){//
head = new Node;
tail = head;
}
void Insert(Node e, Node p){
p.next = e.next;
e.next = p;
}
Insert
void Delete(Node e) e.next = e.next.next;
Delete
void CreateByHeadInsert(){//从键盘输入自然数, -1表示结束
Scanner sc = new Scanner(System.in);
int temp = sc.nextInt();
while(temp != -1){
Node p = new Node();
p.data = temp;
p.next = head.next;
head.next = p;
temp = sc.nextInt();
}
}
CreateByHeadInsert
void CreateByTailInsert(){ //从键盘输入自然数, -1表示结束
Scanner sc = new Scanner(System.in);
int temp = sc.nextInt();
while(temp != -1){
Node p = new Node();
p.data = temp;
p.next = tail.next;
tail = p;
temp = sc.nextInt();
}
}
CreateByTailInsert
void Print(){
Node p=head.next;
while(p!=null){
System.out.print(p.data+" ");
p=p.next;
}
}
public static void main(String[] args) {
LinkList list=new LinkList();
//list.CreateByHeadInsert();
list.CreateByTailInsert();
list.Print();
}
class Node{//定义节点
int data;//值域
Node next;//指针域, 保存后继节点的地址
}
}