《数据结构与算法(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):需要记录两个连续表节点的算法。

你可能感兴趣的:(链表,java,数据结构,算法,开发语言)