java代码实现链表_java单链表代码实现
用惯了C++,java写起来果然不太爽。。。不废话了,上代码。。。
package javaInnerclassDemo;
class Link{
class Node{
private String name;
private Node next;
public Node(String name){
this.name=name;
}
public void setname(String name){
this .name = name;
}
public String getname(){
return this.name;
}
public void addnode(Node newnode){
if(this.next==null)
this.next=newnode;
else
this.next.addnode(newnode);
}
public void printnode(){
if(this.next!=null){
System.out.print(this.name);
System.out.print("——>");
}
else
System.out.println(this.name);
if(this.next!=null)
this.next.printnode();
}
public boolean searchnode(String name){
if(this.name.equals(name)){
return true ;
}
else{
if(this.next!=null){
return this.next.searchnode(name) ;
}
else{
return false ;
}
}
}
public void deleteNode(Node preNode,String name){
if(this.name.equals(name)){
preNode.next = this.next ;
}else{
this.next.deleteNode(this,name) ;
}
}
}
private Node root;
public void add(String name){
Node newnode = new Node(name);
if(this.root==null)
this.root=newnode;
else
this.root.addnode(newnode);
}
public void print(){
if(this.root!=null){ //之所以在外部判断,因为printnode需要迭代
this.root.printnode();
}
else
System.out.println("链表为空,无法打印!");
}
public boolean search(String name){
if(this.root.searchnode(name)==true)
return true;
else
return false;
}
public void delete(String name){
if(this.search(name)){// 判断此节点是否存在
if(this.root.name.equals(name)){
if(this.root.next!=null){
this.root = this.root.next ;// 改变根节点
}
else{
this.root = null ;// 取消
}
}
else{
if(this.root.next!=null){
this.root.next.deleteNode(root,name) ;
}
}
}
else
System.out.println("所要删除节点不存在!");
}
}
public class LinklistDemo {
public static void main(String[] args) {
Link l = new Link();
l.add("walkthehorizon");
l.add("已经");
l.add("无人");
l.add("能挡");
l.add("了");
l.add("么");
System.out.println("打印链表");
l.print();
System.out.println("查找链表");
System.out.println(l.search("walkthehorizon"));
System.out.println(l.search("放逐之刃"));
System.out.println("删除节点");
l.delete("么");
l.print();
}
}java的单链表实现核心在于多层次迭代。
原文:http://blog.csdn.net/u014492609/article/details/42809181
java代码实现链表_java单链表代码实现相关推荐
- java单链表查询功能,Java 实现简答的单链表的功能
作者:林子木 博客网址:http://blog.csdn.net/wolinxuebin 參考网址:http://blog.csdn.net/sunsaigang/article/details/5 ...
- php链表和联表的区别,PHP_浅谈PHP链表数据结构(单链表),链表:是一个有序的列表,但 - phpStudy...
浅谈PHP链表数据结构(单链表) 链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表 单向链表,双向链表,环形链表 PHP的底层是C,当一个 ...
- php mysql 链表_浅谈PHP链表数据结构(单链表)
链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表 单向链表,双向链表,环形链表 PHP的底层是C,当一个程序运行时,内存分成五个区(堆区, ...
- 线性表详解(静态链表、单链表、双向链表、循环链表)
目录 申明 1. 线性表的定义 2. 线性表的抽象数据类型 3. 线性表的顺序存储结构 3. 1 顺序存储定义 3. 2 顺序存储方式 3. 3 数据长度与线性表长度区别 3. 4 地址计算方法 4. ...
- 数据结构5: 链表(单链表)的基本操作及C语言实现
逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储. 由于分散存储,为了能够体现出数据元素之间的逻辑关 ...
- 单链表删除所有值为x的元素_C/C++编程笔记:如何使用C++实现单链表?单链表的基本定义...
如何弥补顺序表的不足之处? 第一次学习线性表一定会马上接触到一种叫做顺序表(顺序存储结构),经过上一篇的分析顺序表的优缺点是很显然的,它虽然能够很快的访问读取元素,但是在解决如插入和删除等操作的时候, ...
- python单链表实现具体例子_Python实现数据结构线性链表(单链表)算法示例
本文实例讲述了Python实现数据结构线性链表(单链表)算法.分享给大家供大家参考,具体如下: 初学python,拿数据结构中的线性链表存储结构练练手,理论比较简单,直接上代码. #!/usr/bin ...
- 线性表:3.链表,单链表详解与C语言实现
逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为 线性表的链式存储 . 由于分散存储,为了能够体现出数据元素之间的逻 ...
- C语言丨线性表(二):线性链表(单链表)
线性表是由数据类型相同的个数据元素组成的有限序列,通常记为: 其中n为表长,n=0时称为空表:下标i表示数据元素的位序. 线性表的特点是组成它的数据元素之间是一种线性关系,即数据元素"一个接 ...
最新文章
- zabbix开启报警声音 网页也可以有声音
- tensorflow 1.0 学习:参数初始化(initializer)
- 使用代码创建BRF ruleset
- P5782-[POI2001]和平委员会【2-SAT】
- 深度学习《StarGAN》
- 关于JVM类加载的几个问题
- 手机MODEM 开发(33)---SimCard 学习总结
- java set的作用,Java的自学之路-构造方法 的作用以及与set方法的区别
- Android虚拟键盘上下左右键按下和弹起的响应事件
- 二维数组和稀疏数组转化
- 红帽linux64系统下载,红帽rhel6.5下载
- 英语十大词性之四 - 副词
- 两台计算机数据传输网线如何做,两台电脑连线传送数据(备份计算机资源)
- IllegalStateException: Fragment already added
- Mathematica学习(2)-mathematica命令
- “筑爱助残 欢乐DIY”蒲公英志愿者走进残疾人之
- linux下的go富集分析,GO富集分析(转载)-Go语言中文社区
- 3500双休和4000单休,你选哪个?
- 比例运算电路(multisim实现)
- Typora免费版本0.11.18
热门文章
- 使用 ASP.NET Core, Entity Framework Core 和 ABP 创建N层Web应用 第二篇
- Debug ASP.NET Core 2.0源代码
- .NET Framework 4.7正式发布
- 开发者的利器:Docker 理解与使用
- ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First
- 微软觊觎LinkedIn算法
- java nio epoll_Java NIO 选择器(Selector)的内部实现(poll epoll)
- Asp.net MVC 中Controller返回值类型ActionResult
- Android之Canvas的drawRoundRect()
- LeetCode之Max Consecutive Ones