java单向链表的实现实例
作者:
package ncu.com.app.chatpter_5;
import java.util.Random;
//结点类
class Node {
Object data;
Node next;
}
//操作类
class ListNode{
public Node first;
public int size;
public ListNode(){
first = null;
size = 0;
}
public void insertNode(Object node){
Node no = new Node();
no.data = node;
no.next = first;
first = no;
size++;
}
public void disPlay(){
if(size==0){
System.out.println("链表为空");
}
Node currnode = first;
while(currnode!=null){
System.out.print(currnode.data+",");
currnode = currnode.next;
}
System.out.println("");
}
//删除i个结点
public void delect(int i){
if(i<=size){
for(int m=0;m<i;m++){
first = first.next;
size--;
disPlay();
}
}
}
//清空链表
public void delectAll(){
size = 0;
first = null;
disPlay();
}
//获得从i-j中链表的数据
public void getNode(int i,int j){
for(int m=0;m<i-1;m++){
first = first.next;
}
Node currnode = first;
for(int m=0;m<j-i+1;m++){
System.out.print(currnode.data+",");
currnode = currnode.next;
}
}
}
public class NodeTree {
public static void main(String args[]){
ListNode listnode = new ListNode();
for(int i = 0;i<10;i++){
int k = new Random().nextInt(10);
listnode.insertNode(k);
System.out.print(k+",");
}
System.out.println("");
listnode.disPlay();
//listnode.delect(10);
//listnode.delectAll();
listnode.getNode(2,8);
}
}