原文地址: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