Java数据结构之链表的实现
来源:互联网 发布:骆驼祥子白房子知乎 编辑:程序博客网 时间:2024/05/01 20:15
链表的实现
在链表数据结构中,我们需要使用到递归算法。
递归算法是一种直接或间接地调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述间接而且容易理解。
但是递归必须要有出口,否则会递归过多造成内存溢出
首先构造一个节点类
/** * 节点类 * @author zll */class Node { private String name; //指向下一个节点 public Node nextNode; public String getName() { return name; } public void add(String name) { if (this.nextNode == null) { this.nextNode = new Node(name); } else { this.nextNode.add(name); } } public void del(String name){ if(this.nextNode != null){ if(this.nextNode.getName().equals(name)){ this.nextNode = this.nextNode.nextNode; }else{ this.nextNode.del(name); } } } public void print() { if (this.nextNode != null) { if(this.nextNode.nextNode == null){ System.out.print(this.nextNode.getName()); }else{ System.out.print(this.nextNode.getName() + "->"); } this.nextNode.print(); } } public Node(String name) { this.name = name; }}
定义一个节点管理类,用于管理节点,实现添加、删除和打印节点的功能
/** * 节点管理类 * @author zll */class ManagerNode { // 定义一个根节点 private Node root; // 添加一个节点 public void addNode(String name) { if (root == null) { // 如果根节点为空,就把当前节点设为根节点 root = new Node(name); } else { root.add(name); } } //删除一个节点 public void delNode(String name){ if(root.getName().equals(name)){ root = root.nextNode; }else{ root.del(name); } } // 节点打印方法 public void printNode() { if (root != null) { System.out.print(root.getName() + "->"); root.print(); } }}
测试类
/** * 链表的实现 * @author zll */public class Test { public static void main(String[] arg0) { ManagerNode mn = new ManagerNode(); for (int i = 1; i <=5; i++) { mn.addNode("第" + i + "个节点"); } mn.delNode("第1个节点"); mn.delNode("第3个节点"); mn.printNode(); }}
测试结果
以上纯属个人见解, 如有不足之处希望有高人指出, 定感激不尽, 如有喜欢交流学习经验请给我留言谢谢.
原创文章, 转载请注明出处
0 0
- 数据结构之链表的Java实现
- Java数据结构之链表的实现
- 【数据结构】之链栈的java实现
- 【数据结构】之链栈的java实现
- 【数据结构】之链栈的java实现
- 数据结构之链表的增删操作的Java实现
- Java数据结构之简单的链表的实现
- 数据结构之双向链表的Java实现
- 数据结构学习之链表的Java实现
- 数据结构Java语言实现之链表
- 数据结构之链表Java实现
- java实现数据结构之单向链表
- Java数据结构实现之链表
- 数据结构之双向链表的实现
- 数据结构之栈的链表实现
- 数据结构之队列的链表实现
- 数据结构 之 链表实现的树
- java数据结构链表的实现
- 华为OJ——进制转换
- 华为OJ——质数因子
- asp.net 学习记录2
- 提问的智慧(转)
- 关于string类型substring方法
- Java数据结构之链表的实现
- 华为OJ——取近似值
- Redis存盘策略hiredis的坑如何查询key
- 华为OJ——合并表记录
- 鸡尾酒混合排序和慢排序
- Spring框架初探【2】
- 华为OJ——提取不重复的整数
- EventBus框架的介绍和和基本用法(零基础都可以听懂的)
- 华为OJ——字符个数统计