java中链表实现
时间:2022-05-06
本文章向大家介绍java中链表实现,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package linklist;
public class Node {
public int iData;
public double dData;
public Node next;
public Node(int iData, double dData) {
this.iData = iData;
this.dData = dData;
}
public void displayLink() {
System.out.println("{" + iData + "," + dData + "}");
}
}
package linklist;
public class LinkList {
private Node head;
public LinkList() {
head = null;
}
public void insertFirst(int iData, double dData) {
Node newNode = new Node(iData, dData);
newNode.next = head;
head = newNode;
}
public Node find(int key) {
Node currentNode = head;
while (currentNode.iData != key) {
if (currentNode.next == null)
return null;
else
currentNode = currentNode.next;
}
return currentNode;
}
public Node delete(int key) {
Node currentNode = head;
Node previousNode = head;
while (currentNode.iData != key) {
if (currentNode.next == null)
return null;
else {
previousNode = currentNode;
currentNode = currentNode.next;
}
}
if (currentNode == head) {
head = head.next;
} else {
previousNode.next = currentNode.next;
}
return currentNode;
}
public void displayList() {
System.out.println("List(first-->last):");
Node currentNode = head;
while (currentNode != null) {
currentNode.displayLink();
currentNode = currentNode.next;
}
System.out.println();
}
public static void main(String[] args) {
LinkList linkList = new LinkList();
linkList.insertFirst(1, 12);
linkList.insertFirst(2, 234);
linkList.insertFirst(3, 11234);
linkList.insertFirst(4, 2342);
linkList.insertFirst(5, 2342);
linkList.insertFirst(6, 234);
linkList.insertFirst(7, 3452);
linkList.displayList();
Node find = linkList.find(4);
if (find != null)
System.out.println("The dData of the " + find.iData + " is "
+ find.dData);
else
System.out.println("There is no " + find.iData);
Node delete = linkList.delete(4);
if (delete != null) {
System.out.println("The dData of the " + delete.iData + " is "
+ delete.dData);
} else {
System.out.println("There is no " + delete.iData);
}
linkList.displayList();
}
}
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- R语言使用贝叶斯层次模型进行空间数据分析
- PHP中的小数取整
- PHP中文获取拼音函数
- PHP5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
- PHP获取中文拼音首字符方法
- PHP_MySQL笔试题目一
- nginx+nginx-upsync-module实现动态负载及自定义验证
- np.diff函数
- PHP对Json字符串解码返回NULL的一般解决方案
- 记一次 Istio 云数据库连接失败的错误排查过程
- PHP对抗web扫描器的脚本技巧
- MTO Jmetal IGD计算BUG
- 《算法》读书笔记:1.1 基础编程模型
- 《剑指 offer》刷题记录之:查找和排序
- numpy 计算路线距离