zoukankan      html  css  js  c++  java
  • java数据结构之链表的实现

    这个链表的内部是使用双向链表来表示的,但是并未在主函数中进行使用

      1 /**
      2  * 链表
      3  * 2016/4/26
      4  **/
      5 class LinkList{
      6     Node head = new Node();
      7     Node tail = new Node();
      8     int size = 0;
      9     public LinkList(){
     10         head.next = tail;
     11         this.head.date = "head";
     12         tail.last = head;
     13         tail.next = null;
     14         this.tail.date = "tail";
     15     }
     16     
     17 
     18     //内部节点类k
     19     class Node{
     20         String date;   //数据域
     21         Node next;    //指向下一个节点
     22         Node last;      //指向上一个节点
     23         Node(){};
     24         Node(String date){
     25            this.date = date; 
     26            this.next = null;
     27            this.next = null;
     28         }
     29     }
     30 
     31     //向链表中添加一个数据 在指定的位置上插入
     32     public void Insert(String date){
     33         Node newNode = new Node(date);
     34         newNode.next = this.head.next;
     35         newNode.last = this.head;
     36         this.head.next.last = newNode;
     37         this.head.next = newNode;
     38         System.out.println("插入数据"+date+"成功");
     39         this.size++;
     40     }
     41 
     42     //遍历链表输出
     43     public void PrintLink( LinkList linklist){
     44         Node preNode = new Node();
     45         preNode.next = this.head.next;
     46         System.out.print("遍历输出结果:");
     47             while(true){
     48                 System.out.print(preNode.next.date+" -->");
     49                 if(preNode.next.next.next == null)  break;
     50                 preNode.next = preNode.next.next;
     51             }
     52             System.out.println("遍历输出完成~~~");
     53     }
     54 
     55     //删除链表中的某一个数
     56     public void DeleteLink(String date){
     57         Node preNode = new Node();
     58         preNode = this.head;
     59         Node node = null;
     60         while(preNode.next != this.tail){
     61             
     62             node = preNode;
     63             preNode = preNode.next;
     64             if(preNode.date == date){
     65                 node.next = preNode.next;
     66                 System.out.println("删除元素"+date+"成功");
     67                 this.size--;
     68             }
     69         }
     70     }
     71 }
     72 
     73 public class DoublyLinkList{
     74     //主函数测试
     75     public static void main(String[] args){
     76         LinkList linklist = new LinkList();
     77         linklist.Insert("lv1");
     78         linklist.Insert("lv2");
     79         linklist.Insert("lv3");
     80         linklist.Insert("lv4");
     81         linklist.Insert("lv5");
     82         linklist.Insert("lv6");
     83         linklist.Insert("lv7");
     84         linklist.Insert("lv8");
     85         linklist.Insert("lv9");
     86         linklist.Insert("lv0");
     87         linklist.Insert("lv11");
     88         linklist.Insert("lv12");
     89         linklist.Insert("lv13");
     90         linklist.Insert("lv14");
     91         System.out.println("链表的长度为:"+linklist.size);
     92         linklist.PrintLink(linklist);
     93         //删除lvbiao3
     94         linklist.DeleteLink("lv3");
     95         linklist.PrintLink(linklist);
     96         
     97         linklist.DeleteLink("lv14");
     98         
     99         linklist.DeleteLink("lv12");
    100 
    101         linklist.PrintLink(linklist);
    102         System.out.println("tail:"+linklist.tail.date);
    103     }
    104 }
  • 相关阅读:
    十大Intellij IDEA快捷键
    IDEA 在同一目录创建多个项目
    IDEA2017 使用(二)
    idea使用(一)
    js == 与 === 的区别[转]
    Spring Boot(一)
    微服务实战(一):微服务架构的优势与不足
    phpcms:三、头部包含
    phpcms:二、头部尾部包含
    phpcms:一、安装及新建模板
  • 原文地址:https://www.cnblogs.com/snail-lb/p/5435735.html
Copyright © 2011-2022 走看看