java实现单链表的增加,删除,查找,打印

原文地址:http://liuyanzhao.com/2230.html
刚才传了一个java实现顺序表的基本功能的代码,下面是单链表的。同为笔记,以为回顾
文件名App.java


/*编写类,实现如下功能:
 *1、创建有序单链表
 *2、包含如下基本操作:初始化、增加、删除、查找、打印元素
 *   注意:初始化不同于用new 创建元素。
 *
 *目的:
 * 1、理解成员变量、成员方法的含义
 *    注意:相关方法的参数列表与C不同,顺序表成员的存取也与C不同
 * 2、理解类=成员变量+成员方法,以及其使用方式。
 **/
import java.util.Scanner;
class SortedLinkedList{
    class Node{ //定义单链表的结点类型(内部类,就是定义在类中的class)
        int data;
        Node next;
    }
    Node head; //链表的表头指针
    void init(){ head=new Node();  head.next=null;}//初始化
    void add(int x ){ //将x加入升序链表
        Node pre,p,q;
        for(pre=head, p=head.next; p!=null; p=p.next,pre=pre.next)
            if(p.data>x)break;
        q=new Node(); q.data=x;
        q.next=p; pre.next=q; //将q插入到pre和p之间
    }
    Node find(int x){//在表中重找x,找到则返回其前驱结点的指针,找不到则返回null
        Node pre,p;
        pre=head;p=head.next;
        while(p!=null && p.data!=x){pre=pre.next; p=p.next;}
        if(p==null)return null;
        return pre;
    }
    void del(int x){//从链表中删除值为x的元素
        Node pre=find(x);
        if(pre==null) return;          //没找到
        else pre.next=pre.next.next; //实施删除
    }
    void showInfo(){
        for(Node p=head.next; p!=null; p=p.next)
            System.out.print(p.data+" ");
    }
}
class App{
    public static void main (String[] args) {
        SortedLinkedList L=new SortedLinkedList();
        L.init();
        System.out.print("请输入一组数,以-1结束:");
        Scanner sc=new Scanner(System.in);
        int x=sc.nextInt();
        while(x!=-1){ L.add(x);   x=sc.nextInt();   }
        System.out.print("有序链表为:");
        L.showInfo();
        System.out.print("\n请输入要删除的数:");
        x=sc.nextInt();   L.del(x);
        System.out.print("有序链表为:");
        L.showInfo();
        System.out.print("\n请输入要插入的数:");
        x=sc.nextInt();   L.add(x);
        System.out.print("有序链表为:");
        L.showInfo();
    }
}

原文地址:http://liuyanzhao.com/2230.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半缘修道半缘君丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值