《数据结构与算法(java版)》第六章 链表结构

链表结构

6.1表节点

1.一个表节点只包含一个元素,但是它还包含另一个表节点(实际上是包含指向这个表节点的引用)。

2.创建节点的方式

先创建节点,再链接。

A)ListNode node1 = new ListNode(“A”);

ListNodenode2 = new ListNode(“B”);

ListNodenode3 = new ListNode(“C”);

node1.setNext(node2);

node2.setNext(node3);

利用重载构造函数的替代方法是:用一个表达式创建整个链。

B)new ListNode

(“A”,newListNode

(“B”,new ListNode(“C”)));

6.2栈和队列

1.(非空的)LinkedStack包含一个ListNode(实质上是包含一个指向它的引用),这个ListNode反过来有包含一个元素,也许还包含另一个ListNode。

2.LinkedQueue实现Queue接口。因为我们在队尾添加元素,并从队头删除它们,所以必须记录节点链的两端。

6.3 LinkedList

1.LinkedList具有一个front字段,它是一个ListNode。就像在LinkedStack中一样,这个节点可能反过来又包含其他的ListNode。

2.两指算法:每次经过它的循环时都会指向两个连续的节点,所以称为两指算法。

3.ListIterator记录了包含由next()最近返回的Object的节点,以及该节点的前驱。

6.5小结

1.ListNode包含一个元素,并且可能还包含指向另一个ListNode的引用。我们可以构建任意长的ListNode链。

2.LinkedStack在链的一端接入和接出节点。LinkedQueue类必须记录链的两端。

3.LinkedList类是一种通用链表结构。Predecessor接口允许我们避免编写特殊的代码,用于添加一个元素到空List中,删除第一个元素等。

6.6术语

双向链接(doubly linked):可以指一种表节点,它同时具有指向链中前一个节点和下一个节点的引用。也可以指一种链表结构,它由双向链接点组成。

表节点(list node):一个对象,包含一个元素以及指向另一个表节点的引用。表节点可以在链中串接起来。

随机访问(rendom access):允许访问任意节点,如数组或DVD。

顺序访问(sequential accesss):只允许通过遍历期间的点来进行访问,如链表结构或VHS磁带。

两只算法(two-finger algorithm):需要记录两个连续表节点的算法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //leetcode中还有花样链表题,这里几个例子,冰山一角 求单链表中结点的个数----时间复杂度O(n)这是最...
    暗黑破坏球嘿哈阅读 1,545评论 0 6
  • 一.线性表 定义:零个或者多个元素的有限序列。也就是说它得满足以下几个条件:  ①该序列的数据元素是有限的。  ②...
    Geeks_Liu阅读 2,715评论 1 12
  • 链表(Linked-list) 前面我们讨论了如何使用栈、队列进行存数数据,他们其实都是列表的一种,底层存储的数据...
    Cryptic阅读 38,942评论 7 57
  • 链表 概念 说到链表,coder们都不会陌生,在日常开发中或多或少都会用到它。它是链式存储的线性表,简称链表。链表...
    扈扈哈嘿阅读 2,093评论 0 5
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,526评论 0 3