链表

来源:互联网 发布:ubuntu打不开终端 编辑:程序博客网 时间:2024/05/16 05:47

1、链数据实体

/** * 链数据实体 * */public class Link {public int iData;public double dData;public Link next;public Link(int id,double dd){iData = id;dData = dd;}public void displayLink(){System.out.println("{"+iData+","+dData+"}");}}


2、链表

/** * 链表 * */public class LinkList {private Link first;public LinkList(){first = null;}public boolean isEmpty(){return (first==null);}/** * 插入 * @param id * @param dd */public void insertFirst(int id,double dd){Link newLink = new Link(id,dd);newLink.next=first;first=newLink;}/** * 删除first * @return */public Link deleteFirst(){Link temp = first;first = first.next;return temp;}/** * 显示 */public void displayList(){System.out.print("first-->last: ");Link current = first;while(current!=null){current.displayLink();current = current.next;}System.out.println(" ");}/** * 查找 * @param key * @return */public Link find(int key){Link current = first;while(current.iData!=key){if(current.next==null){return null;}else{current = current.next;}}return current;}/** * 指定删除 * @param key * @return */public Link delete(int key){Link current = first;Link previous = first;while(current.iData!=key){if(current.next==null){return null;}else{previous = current;current = current.next;}}if(current == first){first = first.next;}else{previous.next = current.next;}return current;}}

关于LinkList 解析

①构造函数


②insertFirst()方法


③deleteFirst()方法


注意:deleteFirst()方法假定链表是不空的。调用之前,程序需要首先调用isEmpty()方法核实链表是否为空。

④displayList()方法

⑤find()方法和delete()方法




3、链表实现

/** * 链表实现 * */public class LinkListApp {public static void main(String[] args) {LinkList theList = new LinkList();theList.insertFirst(22, 2.969);theList.insertFirst(44, 4.68);theList.insertFirst(66, 6.457);theList.insertFirst(88, 8.647);theList.displayList();while(!theList.isEmpty()){Link link = theList.deleteFirst();System.out.print("Delede");link.displayLink();System.out.println("");}theList.displayList();}}



0 0
原创粉丝点击