- 浏览: 118784 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
lintaozhou:
这个file里存放是Map中的数据吗?
JDBM4(MapDB)性能测试 -
在世界的中心呼喚愛:
写入时间应该不准确
JDBM4(MapDB)性能测试 -
huangjun_mail:
tuti 写道你都是怎么学习的呀每个人的学习方法不一样。我目前 ...
连续坚持英语学习31天,希望一直坚持下去! -
fish:
《Teach yourself English in 31 d ...
连续坚持英语学习31天,希望一直坚持下去! -
tuti:
你都是怎么学习的呀
连续坚持英语学习31天,希望一直坚持下去!
1 package com.base.list;
2
3 import java.util.HashSet;
4 import java.util.Set;
5
6
7 public class SingleLinkList {
8
9 class Element {
10 public Object value = null;
11 public Element nextNode = null;
12 }
13
14 class Value
15 {
16 public String code;
17 public String name;
18
19 public Value(){}
20 public Value(String code, String name){ this.code = code;this.name = name;}
21 @Override
22 public String toString() {
23 return code + "-" + name ;
24 }
25
26
27 }
28 private Element header = null;
29
30 public static void main(String[] args) {
31 SingleLinkList list = new SingleLinkList();
32 Value value1 = list.new Value("1", "java");
33 Value value2 = list.new Value("2", "c++");
34 Value value3 = list.new Value("3", "c#");
35 Value value4 = list.new Value("4", "vb");
36 list.add(value1);
37 list.add(value2);
38 list.add(value3);
39 list.add(value4);
40 System.out.println("remove vb ?" + list.remove(value4));
41 System.out.println("have c++ ?" + list.contains(value2));
42 System.out.println("have vb ?" + list.contains(value4));
43 System.out.println("list is emptry ? " + list.isEmpty());
44 System.out.println(list);
45 list.clear();
46 System.out.println("list is emptry ? " + list.isEmpty());
47 }
48
49
50 public void add(Object node) {
51 if (header == null) {
52 header = new Element();
53 header.value = null;
54 header.nextNode = null;
55 }
56 Element element = new Element();
57 element.value = node;
58 element.nextNode = header.nextNode;
59 header.nextNode = element;
60 }
61
62 public void clear() {
63 header = null;
64 }
65
66 public boolean contains(Object o) {
67 if(header==null)
68 return false;
69 Element eqEl = header.nextNode;
70 while(eqEl!=null)
71 {
72 if(eqEl.value==o)
73 {
74 return true;
75 }
76 eqEl = eqEl.nextNode;
77 }
78 return false;
79 }
80
81
82 public String toString() {
83 int size = this.size();
84 String print = "";
85 if(size==0)
86 return print;
87 for( int i = 0; i < size ;i ++)
88 {
89 print = "," + this.get(i) + print;
90 }
91 print = "[" + print.substring(1) + "]";
92 return print;
93 }
94
95
96 public Object get(int index) {
97 if(header==null)
98 return null;
99 int size = this.size();
100 if(index > (size - 1) || index < 0)
101 {
102 return null;
103 }
104 Element temp = header.nextNode;
105 int i = 0;
106 while(temp!=null)
107 {
108 if(index == i)
109 {
110 return temp.value;
111 }
112 i++;
113 temp = temp.nextNode;
114 }
115 return null;
116 }
117
118 private Element getElement(int index) {
119 if(header==null)
120 return null;
121 int size = this.size();
122 if(index > (size - 1) || index < 0)
123 {
124 return null;
125 }
126 Element temp = header.nextNode;
127 int i = 0;
128 while(temp!=null)
129 {
130 if(index == i)
131 {
132 return temp;
133 }
134 i++;
135 temp = temp.nextNode;
136 }
137 return null;
138 }
139
140
141 public boolean isEmpty() {
142 if(header==null)
143 return true;
144 else
145 return false;
146 }
147
148
149 public boolean remove(Object o) {
150 if(header==null)
151 return false;
152 Element eqPreEl = header;
153 Element eqEl = header.nextNode;
154 while(eqEl!=null)
155 {
156 if(eqEl.value==o)
157 {
158 eqPreEl.nextNode = eqEl.nextNode;
159 return true;
160 }
161 eqPreEl = eqEl;
162 eqEl = eqEl.nextNode;
163 }
164 return false;
165 }
166
167 public int size() {
168 if(header==null)
169 return 0;
170 Element temp = header.nextNode;
171 int i = 0;
172 while(temp!=null)
173 {
174 i++;
175 temp = temp.nextNode;
176 }
177 return i;
178 }
179
180 /**
181 * 检查环状单链表
182 * @return
183 */
184 public boolean checkLoop()
185 {
186 if(header==null)
187 return false;
188 int size = this.size();
189 if(size==0)
190 return false;
191 Set<Element> set = new HashSet<Element>();
192 for( int i = 0; i < size ;i ++)
193 {
194 Element el = getElement(i);
195 if(!set.contains(el)){
196 set.add(el);
197 }
198 if(set.contains(el.nextNode))
199 {
200 return true;
201 }
202 }
203 return false;
204 }
205 }
206
2
3 import java.util.HashSet;
4 import java.util.Set;
5
6
7 public class SingleLinkList {
8
9 class Element {
10 public Object value = null;
11 public Element nextNode = null;
12 }
13
14 class Value
15 {
16 public String code;
17 public String name;
18
19 public Value(){}
20 public Value(String code, String name){ this.code = code;this.name = name;}
21 @Override
22 public String toString() {
23 return code + "-" + name ;
24 }
25
26
27 }
28 private Element header = null;
29
30 public static void main(String[] args) {
31 SingleLinkList list = new SingleLinkList();
32 Value value1 = list.new Value("1", "java");
33 Value value2 = list.new Value("2", "c++");
34 Value value3 = list.new Value("3", "c#");
35 Value value4 = list.new Value("4", "vb");
36 list.add(value1);
37 list.add(value2);
38 list.add(value3);
39 list.add(value4);
40 System.out.println("remove vb ?" + list.remove(value4));
41 System.out.println("have c++ ?" + list.contains(value2));
42 System.out.println("have vb ?" + list.contains(value4));
43 System.out.println("list is emptry ? " + list.isEmpty());
44 System.out.println(list);
45 list.clear();
46 System.out.println("list is emptry ? " + list.isEmpty());
47 }
48
49
50 public void add(Object node) {
51 if (header == null) {
52 header = new Element();
53 header.value = null;
54 header.nextNode = null;
55 }
56 Element element = new Element();
57 element.value = node;
58 element.nextNode = header.nextNode;
59 header.nextNode = element;
60 }
61
62 public void clear() {
63 header = null;
64 }
65
66 public boolean contains(Object o) {
67 if(header==null)
68 return false;
69 Element eqEl = header.nextNode;
70 while(eqEl!=null)
71 {
72 if(eqEl.value==o)
73 {
74 return true;
75 }
76 eqEl = eqEl.nextNode;
77 }
78 return false;
79 }
80
81
82 public String toString() {
83 int size = this.size();
84 String print = "";
85 if(size==0)
86 return print;
87 for( int i = 0; i < size ;i ++)
88 {
89 print = "," + this.get(i) + print;
90 }
91 print = "[" + print.substring(1) + "]";
92 return print;
93 }
94
95
96 public Object get(int index) {
97 if(header==null)
98 return null;
99 int size = this.size();
100 if(index > (size - 1) || index < 0)
101 {
102 return null;
103 }
104 Element temp = header.nextNode;
105 int i = 0;
106 while(temp!=null)
107 {
108 if(index == i)
109 {
110 return temp.value;
111 }
112 i++;
113 temp = temp.nextNode;
114 }
115 return null;
116 }
117
118 private Element getElement(int index) {
119 if(header==null)
120 return null;
121 int size = this.size();
122 if(index > (size - 1) || index < 0)
123 {
124 return null;
125 }
126 Element temp = header.nextNode;
127 int i = 0;
128 while(temp!=null)
129 {
130 if(index == i)
131 {
132 return temp;
133 }
134 i++;
135 temp = temp.nextNode;
136 }
137 return null;
138 }
139
140
141 public boolean isEmpty() {
142 if(header==null)
143 return true;
144 else
145 return false;
146 }
147
148
149 public boolean remove(Object o) {
150 if(header==null)
151 return false;
152 Element eqPreEl = header;
153 Element eqEl = header.nextNode;
154 while(eqEl!=null)
155 {
156 if(eqEl.value==o)
157 {
158 eqPreEl.nextNode = eqEl.nextNode;
159 return true;
160 }
161 eqPreEl = eqEl;
162 eqEl = eqEl.nextNode;
163 }
164 return false;
165 }
166
167 public int size() {
168 if(header==null)
169 return 0;
170 Element temp = header.nextNode;
171 int i = 0;
172 while(temp!=null)
173 {
174 i++;
175 temp = temp.nextNode;
176 }
177 return i;
178 }
179
180 /**
181 * 检查环状单链表
182 * @return
183 */
184 public boolean checkLoop()
185 {
186 if(header==null)
187 return false;
188 int size = this.size();
189 if(size==0)
190 return false;
191 Set<Element> set = new HashSet<Element>();
192 for( int i = 0; i < size ;i ++)
193 {
194 Element el = getElement(i);
195 if(!set.contains(el)){
196 set.add(el);
197 }
198 if(set.contains(el.nextNode))
199 {
200 return true;
201 }
202 }
203 return false;
204 }
205 }
206
发表评论
-
JDBM4(MapDB)性能测试
2013-09-14 21:46 8746最近需要一个大Map保存大量KV,找了一下最新的JDBM4 ... -
xfire传输自定义对象遇到的问题
2010-09-21 14:01 1930这几天,项目中的两个子系统交互用到了webservi ... -
MyEclipse8.0GA 自动生成到MyEclipse8.5的问题解决。
2010-06-05 10:11 1531昨晚,自动更新了MyEclipse8.0GA,更新完 ... -
小型Web服务器实现
2010-05-31 22:56 1125相信很多朋友都读过《Core Servlets and JSP ... -
浏览器upload文件到Web服务器
2010-05-31 20:19 946前段时间写了一个IC卡读写COM组件,这个组件可以把 ... -
DES加密/解密文件
2010-05-31 17:50 1600最近在工作中,需要加密/解密一个数据文件,本来准备用目前 ... -
effective java
2009-06-18 21:20 1068今天了解了 ... -
负数的二进制表示方法
2009-08-06 21:15 4489今天在看base64编码转换 ... -
Java Core II 读书笔记(一)多线程
2009-09-01 22:57 7641多线程 线程的状态:New 、Runnable、Bloc ... -
Java Core II 读书笔记(二)集合框架
2009-09-02 20:35 917集合框架 概述:如果熟悉C++ STL 的朋友肯定会发现 Ja ... -
Java Core II 读书笔记(三)网络
2009-09-03 22:57 7763网络API 概述: 对于网络的实现,java支持Socket ... -
Core Servlets and JSP Volume I 读后感 概述(一)
2009-11-05 21:24 1110一 简述 Servlet是java ... -
Core Servlets and JSP Volume I 读后感 开发环境配置(二)
2009-11-05 21:31 697基于Tomcate的Web服务器的开发环境配置 1. jdk ... -
Core Servlets and JSP Volume I 读后感 Servlet(三)
2009-11-05 21:32 834一 Servlet工作 (1) 接收客户端显示数据, ... -
Core Servlets and JSP Volume I 读后感 JDBC(五)
2009-11-05 21:34 431访问数据库过程: (1)Load JDBC驱动 (2)建立数据 ... -
Core Servlets and JSP Volume I 读后感 JSP(四)
2009-11-05 21:34 976一 概述 jsp其实就是Servlet的另外一种表达方式, ... -
集合组合算法
2010-03-14 22:47 1053//设计算法以求解从集合{1..n}中选取k(k<=n) ... -
Hibernate理解
2010-04-05 19:15 819概述: Hibernate是一个纯Object Relat ...
相关推荐
本教程将深入探讨如何使用Java语言来实现单链表及其相关操作。 首先,我们来理解单链表的基本概念。单链表由一系列节点组成,每个节点包含两部分:数据域(用于存储数据)和指针域(指向下一个节点)。链表的最后一...
本文将深入探讨如何使用Java语言实现单链表的基本操作,包括创建链表、插入节点、删除节点以及遍历链表等关键功能。 首先,我们需要理解单链表的概念。单链表是一种线性数据结构,其中每个元素(称为节点)包含两个...
用Java语言实现的单链表,有增加节点、删除节点、查询节点和打印链表的功能,Java和数据结构初学者的必备程序!
本篇文章将深入探讨如何使用Java语言实现单链表,并对其基本操作进行详细阐述。 单链表是由一系列节点构成,每个节点包含两部分:数据元素(data)和指向下一个节点的引用(next)。在Java中,我们可以使用类来表示...
在计算机科学中,链表是一种基础且重要的数据结构,它与数组类似,但有其独特的优势。本篇文章将深入探讨Java中的单链表及其基本操作的实现。...希望这个简短的介绍能够帮助你更好地理解和使用Java中的单链表。
在JAVA语言中,单链表是非常重要的数据结构之一,它可以用于实现各种高效的算法,例如排序、搜索等。在实际应用中,单链表可以用于解决许多实际问题,例如数据压缩、数据加密等。 本实验可以帮助我们更好地理解...
本教程主要探讨的是如何在Java编程语言中实现单链表的基本操作,特别是如何获取链表的长度。下面我们将深入讨论相关知识点。 首先,我们需要理解单链表的概念。单链表是由一系列节点构成的,每个节点包含两部分:...
单链表是数据结构中的一个基础元素,...这个项目提供了一种具体实现单链表合并的Java代码,可以帮助学习者深入理解链表操作,并能应用于实际问题解决。通过对这个项目的实践,可以提升对数据结构的理解,增强编程能力。
下面我们将详细探讨如何在Java中实现单链表的增、删、改、查功能,以及如何进行选择排序、冒泡排序和反转排序。 1. **单链表的定义**: - 单链表的每个节点通常包括两部分:数据域(存储元素)和指针域(存储下一...
本篇文章将深入探讨如何使用Java语言实现单链表,并对其进行详细的设计分析。 单链表是由一系列节点组成的数据结构,每个节点包含两部分:数据元素(也称为元素或值)和指向下一个节点的引用。在Java中,我们可以...
在这个"Java算法实例-单链表操作"中,我们将探讨如何在Java中实现单链表,包括其基本操作如插入、删除、遍历等。这些操作对于理解和解决各种算法问题至关重要,尤其对于学习和准备编程考试的学员来说,是非常实用的...
本文将深入探讨如何使用Java语言自己实现一个单链表,包括其核心概念、基本操作以及相关的代码实现。 首先,我们要了解单链表的基本概念。单链表是由一系列节点构成的,每个节点包含两个部分:数据域,存储实际的...
Java 数据结构单链表的实现是 Java 语言中的一种基本数据结构,通过定义链表节点和链表操作工具类来实现。链表的基本操作包括插入、删除和遍历,并且链表的应用非常广泛。 因此,本文通过介绍 Java 数据结构单链表...
【Java泛型单链表】是一种使用Java编程语言实现的数据结构,主要涉及到链表的创建、插入、删除等基本操作。在Java中,泛型允许我们编写可重用的代码,适用于多种数据类型,而无需进行重复的类型转换。在这个实现中,...
算法-单链表遍历及反转(Java)(csdn)————程序.pdf的标题主要讲述了单链表的遍历和反转操作,使用Java语言实现。 描述解释 单链表遍历及反转是数据结构中的一种常见操作,单链表是一种基本的数据结构,它由...
Java作为一种广泛使用的面向对象的编程语言,提供了丰富的数据结构支持。本文将深入探讨Java中的单链表,这是一种基本但至关重要的数据结构。 单链表是一种线性数据结构,其中每个元素(称为节点)包含两个部分:...
在这个话题中,我们将深入探讨两种基本的线性数据结构——单链表和双向链表,并通过Java语言来实现它们。 单链表是一种线性数据结构,其中每个元素(称为节点)包含两个部分:数据域和指针域。数据域存储实际的数据...
在Java中,实现单链表通常通过定义一个Node类来表示链表节点,然后创建一个LinkedList类来管理这些节点。Node类通常包括一个数据字段和一个指向下一个节点的引用字段。例如: ```java public class Node { int ...
要实现单链表的逆序,你可以采用以下几种方法: 1. **迭代法**: 这是最直观的方法,使用三个指针`prev`、`current`和`next`。初始化时,`prev`为空,`current`为头节点。遍历链表,每次迭代将`current`的`next`...
数据结构与算法是计算机科学的基础,对于理解和解决复杂问题至关重要。...通过阅读《数据结构与算法(JAVA语言版)》这本书,你将深入理解这些概念,并能熟练运用Java语言实现它们,从而提升你的编程能力。