链表(Java版)

来源:互联网 发布:网络销售工作内容 编辑:程序博客网 时间:2024/06/05 18:16
//链接点类package com.huowolf.test2;public class Link {private long data;private Link next;public Link(long data) {this.data  = data;}public long getData() {return data;}public void setData(long data) {this.data = data;}public Link getNext() {return next;}public void setNext(Link next) {this.next = next;}}

//链表类package com.huowolf.test2;public class LinkList {private Link first;//插入结点public void insert(long value) {Link lnk = new Link(value);if(first == null) {first = lnk;} else {lnk.setNext(first);first  =  lnk ;}}public void display() {Link current = first;while(current != null) {System.out.print(current.getData() + " ");current = current.getNext();}}//查找结点public Link find(long key) {Link current  = first;while(current.getData() != key) {if(current.getNext() == null) {return null;}current = current.getNext();}return current;}//插入结点到指定位置public void insert(long value,int pos) {if(pos == 0) {insert(value);} else {Link current = first;for(int i = 0; i < pos-1; i++) {current = current.getNext();}Link lnk = new Link(value);lnk.setNext(current.getNext());current.setNext(lnk);}}//删除指定结点public void delete(long key) {Link current = first;Link ago = first;while(current.getData() != key) {if(current.getNext() == null) {return;} else {ago = current;current = current.getNext();}}if(current == first) {first = first.getNext();} else {ago.setNext(current.getNext());}}}

//测试类package com.huowolf.test2;public class TestLinkList {public static void main(String[] args) {LinkList list = new LinkList();/*int n = 0;Scanner sc = new Scanner(System.in);while(true){n = sc.nextInt();if(n == -1)break;list.insert(n);}sc.close();*/list.insert(40);list.insert(20);list.insert(15);list.insert(30);list.insert(55); list.display();System.out.println();System.out.println("找到结点,数据为"+list.find(40).getData());list.insert(25, 2);list.display();list.delete(15);System.out.println("-----------------------");list.display();}}


0 0