将结点Node进行封装,假设Node的操作有增加,删除,查找,打印几个操作。将Node实现为链表Link的内部类,简化代码。package Chapter5;import java.security.cert.LDAPCertStoreParameters;class Link{ class Nod...
分类:
编程语言 时间:
2015-08-29 18:25:43
阅读次数:
149
本程序采用JAVA语言实现了线性表的链式实现。首先定义了线性表的接口ListInterface,然后LList类实现了ListInterface完成了链表的实现。本实现中,链表是不带表头结点的,且有一个指针始终指向链表中的第一个元素,并没有定义尾指针。因此,每次向链表中插入新结点时需要遍历链表一次。...
分类:
编程语言 时间:
2015-06-03 17:35:20
阅读次数:
158
1,本程序实现了线性表的链式存储结构。实现的链表带有两个指针,一个始终指向链表中的第一个结点,另一个指针始终指向链表中的最后一个结点。之所以设置尾指针,是因为,在插入元素到链表中的末尾时,可以通过尾指针直接找到链表的最后一个元素,从而不需要遍历链表就可以完成插入操作。2,具体实现链表的类名为LLis...
分类:
编程语言 时间:
2015-06-03 17:19:10
阅读次数:
102
用惯了C++,java写起来果然不太爽。。。不废话了,上代码。。。
package javaInnerclassDemo;
class Link{
class Node{
private String name;
private Node next;
public Node(String name){
this.name=name;
}
public void se...
分类:
编程语言 时间:
2015-01-17 20:54:30
阅读次数:
198
题目:输入带头结点的单链表L,输出该单链表中倒数第k个结点。单链表的倒数第0个结点为该单链表的尾指针。要求只能遍历一次单链表。
解题思路:
如果不要求只能遍历一次单链表,我们可以先遍历一次单链表,求出它的结点的总个数n(包括头结点),所以单链表的结点是从倒数第n-1个到倒数第0个,然后再遍历一次单链表,遍历时访问的第n-k-1个结点就是该单链表中倒数第k个结点。现在要求只能遍历...
分类:
编程语言 时间:
2015-01-17 18:10:44
阅读次数:
162
题目:删除带头结点的单链表中重复值的元素(即让每种值的元素只有一个)
解题思路:
用一个动态辅助存储数组,每次要向辅助数组中放入元素时,让辅助数组的长度加1,最长时与单链表一样长,设一个指针p,让它指向头结点,从单链表中第一个元素开始,将它的值放入辅助数组中,然后依次访问单链表后面的元素,用该元素的值与数组中所有已经被赋值的元素的值进行比较,如果不等于数组中任何元素的值,那么让p的...
分类:
编程语言 时间:
2015-01-17 11:20:26
阅读次数:
201
题目:删除带头结点的单链表L中的结点p,p不是最后一个结点,要求时间复杂度为O(1)。
解题思路:
如果不要求时间复杂度为O(1),我们可以找出p的前驱结点,然后很容易就删除p。
现在要求时间复杂度为O(1),因为p不是最后一个结点,知道结点p我们可以删除p的后继结点,那么我们可以把p的后继结点元素的值赋给p结点元素的值。
ADT定义:
//单链表的结点类
class LNo...
分类:
编程语言 时间:
2015-01-17 11:17:47
阅读次数:
285