文档章节

java实现链表

s
 sunsyu
发布于 2017/04/13 16:03
字数 266
阅读 2
收藏 0

节点类:
<span style="background-color: rgb(255, 255, 255);">public class listNode {
	listNode next;
	Object element;
	
	listNode(Object element) {
		this(null, element);
	}
	listNode(listNode next,Object element){
		this.element=element;
		this.next=next;
	}
}
</span>
<span style="background-color: rgb(255, 255, 255);">
</span>

枚举器类:实现节点位置的类

<span style="background-color: rgb(255, 255, 255);">public class linkedListItr {
	listNode current;
	public linkedListItr(listNode theNode) {
		current = theNode;
	}
	public boolean isPastEnd(){
		return current == null;
	}
	public Object retrieve() {
		return isPastEnd()?null:current.element;
	}
	public void advance() {
		if(!isPastEnd()){
			current=current.next;
		}
	}
}</span><span style="color:#ff0000;background-color: rgb(0, 0, 0);">
</span>

方法类:

public class linkedList {
	listNode header;
	public linkedList(){
		header = new listNode(null);
	}
	public boolean isEmpty() {
		return header.next == null;
	}
	public void makeEmpty() {
		header.next=null;
	}
	public linkedListItr zeroth() {
		return new linkedListItr(header);
	}
	public linkedListItr firth() {
		return new linkedListItr(header.next);
	}
	public void insert(Object x,linkedListItr p) {
		if (p!=null&&p.current!=null) {
			p.current.next= new listNode(p.current.next,x);
		}
	}
	public void  print(linkedList theList) {
		 if (theList.isEmpty()) {
			System.out.println("empty!");
		}
		 else{
			 linkedListItr itr = theList.firth();
			 for(;!itr.isPastEnd();itr.advance()){
				 System.out.print(itr.retrieve()+" ");
			 }
			 System.out.println("");
		 }
	}
	
	public linkedListItr find(Object x) {
		listNode itr=header.next;
		while(itr!=null && !itr.element.equals(x))
			itr=itr.next;
		return new linkedListItr(itr);
	}
}<span style="color:#ff0000;">
</span>

主函数:
public class mainLinked {

	public static void main(String[] args) {
		linkedList headerNode=new linkedList();
		linkedListItr currentItr;
		listNode pNode1 = new listNode(1);
		listNode pNode2 = new listNode(pNode1,2);
		listNode pNode3 = new listNode(pNode2,3);
		listNode pNode4 = new listNode(pNode3,4);
		listNode pNode5 = new listNode(pNode4,5);
		listNode pNode6 = new listNode(pNode5,6);
		headerNode.header.next=pNode6;
		headerNode.print(headerNode);
		
		currentItr=headerNode.find(5);
		headerNode.insert(108, currentItr);
		headerNode.print(headerNode);
	}

}





© 著作权归作者所有

s
粉丝 0
博文 109
码字总数 135924
作品 0
深圳
私信 提问
JDK源码之LinkedList

LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。 LinkedList 实现 List 接口,能对它进行队列操作。 LinkedList 实...

村长大神
2014/03/27
15
0
可视化的数据结构和算法

还记得之前发布过的那个关于可视化排序的文章吗?在网上又看到了一个旧金山大学David Galles做的各种可视化的数据结构和基本算法的主页,网址在这里,大家可以看看。我把这个页面的目录列在下...

戴威
2011/05/12
1K
5
源码之LinkedList 单双向链表介绍

链表 单向链表 单链表的特点: 最后一个节点的next为null(闭环链表指向第一个元素) 只可一个方向遍历 双向链表 特点: 最后一个节点的next为null(闭环链表指向第一个元素) 可双向遍历(从头部...

yimingkeji
01/07
17
0
《数据结构与算法系列》合集整理

《数据结构与算法系列》合集整理 整理来自博客园skywang12345,以下摘自作者介绍: “最近抽空整理了"数据结构和算法"的相关文章。在整理过程中,对于每种数据结构和算法分别给出"C"、"C++"...

kaixin_code
2018/12/01
152
0
Java_LinkedList_数据结构

java api 在包java.util.LinkedList中有一个LinkedList双向链表类;在由于最近有许多的java课程作业,兴趣之余自己写了一个类似的LinkedList类。由于是从C/C++转向java的,代码中还是有许多C...

掬一捧
2012/04/16
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
15分钟前
1
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部