java链表之--单向链表的增删改查


class Link {//链表类 class Node {//保存每一个节点,此处为了方便直接定义成内部类 private String data; //节点的内容 private Node next; //保存下一个节点public Node(String data) {//通过构造方法设置节点内容 this.data = https://www.it610.com/article/data; }public void add(Node node) {//增加节点 if (this.next == null) {//如果下一个节点为空,则把新节点加入到next的位置上 this.next = node; } else {//如果下一个节点不为空,则继续找next this.next.add(node); } }public void print() {//打印节点 if (this.next != null) { System.out.print(this.data +"-->"); this.next.print(); } else { System.out.print(this.data + "\n"); } }public boolean search(String data) {//内部搜索节点的方法 if (this.data.equals(data)) { return true; } if (this.next != null) { return this.next.search(data); } else { return false; } }public void delete(Node previous, String data) {//内部删除节点的方法 if (this.data.equals(data)) { previous.next = this.next; } else { if (this.next != null) { this.next.delete(this, data); } } } }private Node root; //定义头节点public void addNode(String data) {//根据内容添加节点 Node newNode = new Node(data); //要插入的节点 if (this.root == null) {//没有头节点,则要插入的节点为头节点 this.root = newNode; } else { //如果有头节点,则调用节点类的方法自动增加 this.root.add(newNode); } }public void print() {//展示列表的方法 if (root != null) {//当链表存在节点的时候进行展示 this.root.print(); } }public boolean searchNode(String data) {//在链表中寻找指定内容的节点 return root.search(data); //调用内部搜索节点的方法 }public void deleteNode(String data) {//在链表中删除指定内容的节点 if (root.data.equals(data)) {//如果是头节点 if (root.next != null) { root = root.next; } else { root = null; } } else { root.next.delete(this.root, data); } } }public class LinkDemo { public static void main(String[] args) { Link l = new Link(); l.addNode("A"); l.addNode("B"); l.addNode("C"); l.addNode("D"); System.out.println("原链表:"); l.print(); String searchNode = "B"; System.out.println("查找节点:" + searchNode); String result = l.searchNode(searchNode) ? "找到!" : "没找到!"; System.out.println("查找结果:" + result); System.out.println("删除节点:" + searchNode); l.deleteNode(searchNode); System.out.println("删除节点后的链表:"); l.print(); } }




【java链表之--单向链表的增删改查】结果:原链表:
A-->B-->C-->D
查找节点:B
查找结果:找到!
删除节点:B
删除节点后的链表:
A-->C-->D


java链表相关知识:
java链表之--java双向链表的增删改查http://blog.csdn.net/basycia/article/details/51839221

java链表之--单向循环链表blog.csdn.net/basycia/article/details/51839378

java链表之--双向循环链表 blog.csdn.net/basycia/article/details/51839431



    推荐阅读