java链表

初学java语言,感觉到java语言的面向对象的特性之强大。
java的对象就是一个指针,使用new创建对象就是对指针申请空间。
 
 

public class linklist{
    static int MAX_LINK_NUM = 100;
    int data; //实例变量

    linklist next; //引用, 即C语言的指针

    
    linklist(){ //使用构造方法初始化链表头
        data = 0;
        next = null;
    }
    /*
     *往链表L内插入一个链表,其数据为data
     */
    
    public linklist InsertLink(linklist L, int data){
        linklist s, r;
        r = L;
        while(r.next != null){
            r = r.next;
        }
        s = new linklist();
        s.data = data;
        r.next = s;
        s.next = null;
        return L;
    }
    public int GetLinkNum(linklist L){
        linklist r;
        int num = 0;
        r = L.next;
        while(r != null){
            num++;
            r = r.next;
        }
        return num;
    }
    /*
     *删除链表L的第num个链表
     *num : 1~MAX_LINK_NUM
     */

    public linklist DeleteLink(linklist L, int num){
        linklist r, p; /*p为第num-1个链表。r为第num个链表*/
        int num1, num2;
        if(num > L.GetLinkNum(L)){
            System.out.println("所要删除的链表不存在!");
            return L;
        }
        r = p = L;
        num1 = num2 = num;
        while(num1 != 1){
            p = p.next;
            num1--;
        }
        while(num2 != 0){
            r = r.next;
            num2--;
        }
        p.next= r.next;
        return L;
    }
    
    public static void main(String args[]){
        linklist L, r;
        L = new linklist();
        for(int i = 1; i < 11; i++){
            L.InsertLink(L, i);
        }
        r = L.next;
        while(r != null){
            System.out.println(r.data);
            r = r.next;
        }
        
        int num = L.GetLinkNum(L);
        System.out.print("链表长度是:");
        System.out.println(num);
        
        L.DeleteLink(L, 2);
        r = L.next;
        while(r != null){
            System.out.println(r.data);
            r = r.next;
        }
        num = L.GetLinkNum(L);
        System.out.print("链表长度是:");
        System.out.println(num);
        L.DeleteLink(L, 12);
        r = L.next;
        while(r != null){
            System.out.println(r.data);
            r = r.next;
        }
        num = L.GetLinkNum(L);
        System.out.print("链表长度是:");
        System.out.println(num);
    }
}


<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(1184) | 评论(0) | 转发(0) |
0

上一篇:iconv的转化脚本

下一篇:Java 的工作原理

给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值