数据结构与算法----->数据结构----->链表

概述:

  1.和数组一样,链表也是一种数据存储结构

  2.链表这种数据存储结构的java实现

  3.链表的种类

    • 单链表
    • 双端链表
    • 有序链表
    • 双向链表
    • 有迭代器的链表(迭代器是用来随机访问链表元素的一种方法)

  4.不同类型链表的java实现(综述)

    • 概述:
      • 不同类型的链表,其java实现略有不同。但是所有类型的链表都是由class XxxLink(节点类)class LinkList(链表类)这两种类共同实现的。
    • 关于class XxxLink:
      • 类成员变量 
        • 基本类型类成员变量
        • 类类型成员变量
        • XxxLink  next; //一定要有一个这样的成员变量,用于存储下一个节点    的地址
        •  类成员变量的访问权限设置成public或者缺省(缺省状态下类成员变    量的访问范围为该包)
      • 构造函数   
        • 显式的变量初始化语句
        • 隐式的变量初始化语句(当没有相应的显式的初始化语句时,类成员变   量会自动被赋值成系统默认的值,如类类型的变量next就会被自动赋   值成null
      • 成员函数       
        • 一般只有displayLink(),用于输出节点内容
    • 关于 class LinkList
      • 类成员变量
        • 一般只有XxxLink firstLink; //存放链表第一个节点对象(链表头部)的地址
        • XxxLink lastLink;
        • 这两个成员变量(或只有其中的一个)
      • 构造函数   
        • 将类成员变量firstLink赋值为null   (可缺省该语句)
      • 成员方法    
        • insertFirst()
        • deleteFirst()
        • deleteLinkByKey()
        • findLink(String key)
        • isEmpty()
        • displayList()等等

2.1单链表的java实现

2.2双端链表的java实现

P152

2.3有序链表的java实现

      

2.4双向链表的java实现

P175

3.链表的应用

  3.1单链表实现stack

      P157

  3.2双端链表实现队列(调用链表类的insertLast()deleteFirst()函数)

      P160

  3.2使用有序链表实现有序数组

      P169

4.链表的“迭代器类”(方便与在linkList类之外的类中遍历链表,如main函数中遍历链表,操作链表中各个节点)

  4.1概述:链表的“迭代器类”的用处

      1)链表的迭代器类中的成员方法和链表类的成员方法有一定的重合,至于哪些函数应该放在迭代器类,哪些函数因该放在链表类中,至今任然没有人给出确切的标准,要依据实际需求来规划链表类和链表的迭代器类。

           

      2)链表的迭代器类的使用场地主要在:main函数中,或者除了XxxLinkXxxLinkList类之外的类中。

  4.2链表的迭代器类的java实现

      1)链表的迭代器类的成员方法通常有:

          

      2)链表的迭代器类的java实现思路

          首先,要在XxxLinkList类中实现getIterator()函数

          其次,要编写XxxLinkListIterator

         P184

5.两种数据存储结构:链表和数组的异同点

      

6.小结

      

      

      

      

      

      

      

7.遗留问题

P193编程作业

  

学习的过程中总会得到一些心得体会,认真地将它们记录下来并分享给每一个愿意花费时间去阅读它们的人,然后意外地收获某个读者的评论,从而激发出新的感想,是一件十分令人欢快的事。如果你也在研习这方面的知识,欢迎加入到我们的队伍中来,和我们一起进步吧(^_^)
原文地址:https://www.cnblogs.com/lxrm/p/6440196.html