[记录]Java---实现简单的链表
2015-05-07 15:40
423 查看
一个简单的链表,顺便复习一下C
// 1、定义一个节点类 Node.java: package Java链表; /** * @author 高攀 * 节点的定义(相当于C语言的结构体) */ public class Node { public Object data;//数据域。 public Node next;//下一个节点。 public Node(){ } public Node(Object data) { //构造函数给数据域赋初值。 this.data = data; } } // 2、编写链表类 LinkList.java package Java链表; import java.util.ArrayList; /** * @author 高攀 * */ public class LinkList { public Node head = null;//头结点 //创建将要对链表进行操作的两个引用(指针) public Node p = null; public Node q = null; //创建链表 public void createList(ArrayList o){ head = new Node(); q = head; //用q取得head for (int i = 0; i < o.size(); i++) { p = new Node(o.get(i)); //新建节点 q.next = p; q = q.next;//把q后移 } p.next = null; //最后把链表设为null。 } //显示链表中所有元素 public void showList(){ if(head!=null){//如果创建了链表才执行显示链表 Node n = head; System.out.println("更新链表后:"); while(n.next!=null){ n = n.next; if(n.next==null){ System.out.print(n.data); }else{ System.out.print(n.data+"--->"); } } }else{ System.out.println("您还没有创建链表!不能进行任何操作!"); } } //增 public void addList(Object o){ if(head!=null){//如果创建了链表才执行添加链表 q = head; System.out.println("你添加后的链表是:"); while(q!= null){ if(q.next==null){//找到了最后一个节点 p = new Node(o); q.next = p; p.next = null; showList(); break; } q = q.next; } }else{ System.out.println("您还没有创建链表!不能进行任何操作!"); } } //删 public void removeList(Object o){ if(head!=null){//如果创建了链表才执行删除链表 q = head; System.out.println("你删除后的链表是:"); while(q!= null){ p = q.next;//p是q的下一个 if(p.data.equals(o)){//找到了该 删除的节点的话 if(p.next == null){//如果是尾节点 p = null; q.next = null; showList(); break; }else{ //移除这个节点 p = p.next; q.next = p; showList(); break; } } q = q.next;//q一直后移 } }else{ System.out.println("您还没有创建链表!不能进行任何操作!"); } } //查 } // 3、测试类 TestLink.Java package Java链表; import java.util.ArrayList; import java.util.Scanner; /** * @author 高攀 * */ public class TestLink { public static void main(String[] args) { try { LinkList list = new LinkList(); System.out.println("输入多长的链表?"); Scanner sc = new Scanner(System.in); Scanner sc1 = new Scanner(System.in); Scanner sc2 = new Scanner(System.in); int s = sc.nextInt(); ArrayList o = new ArrayList(); System.out.println("输入你的数据:"); for (int i = 0; i < s; i++) { o.add(sc.next()); } list.createList(o); list.showList(); System.out.println("添加:"); Object oo = sc1.next(); list.addList(oo); System.out.println("\n你要删除的元素:"); Object ooo = sc2.next(); list.removeList(ooo); } catch (Exception e) { e.printStackTrace(); return ; } } }
相关文章推荐
- Java数据结构之简单链表的定义与实现方法示例
- java实现简单链表
- JAVA链表简单实现
- java模拟链表和栈以及简单实现
- 简单记录——android selector对应的java实现:StateListDrawable
- (25)Java实现简单的链表
- java实现简单的链表增加,删除,显示
- Java实现简单链表
- 单向链表的java简单实现
- java简单实现链表
- 链表用java实现简单单链表linkedlist
- java实现简单的单链表结构
- 使用java实现的超简单的单向链表 头插法
- JAVA实现最简单的双向链表、队列与栈(内部使用链表形式存储)
- 记录java 流(实现简单的文件读写)
- java实现链表简单示例
- Java链表的简单实现
- Java数据结构之简单的链表的实现
- [算法]Java 实现 简单MyNode类型 无序链表 递归 添加 删除 遍历
- Java二叉树链表的简单实现(保存和取出)