zoukankan      html  css  js  c++  java
  • 4.1链表

    数据存储在节点(node)中,对于链表而言,有2部分

    1 class Node{
    2         public E e;       //一部分存储真正的数据
    3         public Node next;   //另一部分,next是Node类型的对象,换言之,next本身又是一个节点,next指向的是当前节点的下一个节点。
    4 }

    对于链表来说就像火车一样,每一个节点其实就是一节车厢,在车厢中存储真正的数据,而车厢和车厢之间还要进行连接,以使得数据是整合在一起的,用户可以方便的在所有数据上进行查询等其他的操作,那么数据和数据之间的连接就是有next来完成

    链表优点:真正的动态,不需要处理固定容量的问题。

    缺点:丧失了随机访问的能力。每一个节点所在的内存的位置是不同的。

    1 //创建一个类LinkedList,目的是在LinkedList中实现链表数据结构。要求支持泛型,在LinkedList后加上<E>
    2 public class LinkedList<E> { 
    3 
    4     ......
    5 
    6 }
     1 public class LinkedList<E> {      //在LinkedList中实现链表数据结构。要求支持泛型,在LinkedList后加上<E>
     2     //链表是由一个一个节点所组成的,数据存储在节点(node)中,对于链表而言,有2部分
     3     private class Node{  //将节点Node设置成LinkedList的内部类,同时这个Node设置成私有的,换言之,只有在链表这个数据结构内可以访问node,而在链表这个结构外是无法访问到node的。
     4         //定义Node变量
     5         public E e;       //一部分存储真正的数据
     6         public Node next;   //另一部分,next是Node类型的对象,换言之,next本身又是一个节点,next指向的是当前节点的下一个节点。
     7         //构造函数
     8         public Node(E e, Node next){     //构造函数的2个参数和Node节点中传来变量的2个变量名重名( public E e和public Node next),所以需要写this.e, this.next,表示节点所拥有的
     9             this.e = e;   //将当前的节点e赋值成用户传来的e,其中左边this.e表示节点的e,等号右边是用户传来的e
    10             this.next = next;//将当前节点的next赋值成用户传来的next
    11         }
    12 
    13         public Node(E e){
    14             this(e, null);
    15         }//  构造函数,如果用户只传来一个e,此时就调用具有2个参数的构造方法,第一个参数传用户传来的e,第二个参数赋值为空
    16 
    17         public Node(){
    18             this(null, null);
    19         } //构造函数,如果用户什么都不传
    20 
    21         @Override     //对于链表的每一个节点来说,相应的设置一个他们父类对应的toString函数,来方便后期打印输出
    22         public String toString(){
    23             return e.toString();
    24         }
    25     }
    26 
    27 }
    带女朋友搬家新家条件不好,累到女朋友了,让女朋友受苦了,特此明志:每天学习,明年这个时候(20190812)让女朋友住上大房子,永远年轻,永远热泪盈眶,很多人都是这样,他们都把自己当成身在梦中一样,浑浑噩噩地过日子,只有痛苦或爱或危险可以让他们重新感到这个世界的真实。
  • 相关阅读:
    动态链接库DLL
    异常处理
    内存
    线程同步
    线程基础、线程调度
    笔记摘录:进程、作业
    工具DebugView、PCHunter、Procexp、Procmon
    使用Windbg和VMware来搭建调试内核的环境
    C++智能指针
    AndroidEventBus
  • 原文地址:https://www.cnblogs.com/make-big-money/p/10318665.html
Copyright © 2011-2022 走看看