admin管理员组

文章数量:1794759

链表

链表

1,循环列表只是单向链表的最后节点地址指向第一个节点。

 

2,Node 类

public class Node {String name;Node next;public Node(){}public Node(String name){this.name = name;this.next = null;}
}

3,链表类

public class CLink {int size;Node first;public CLink() {this.size = 0;}public boolean isEmpty() {return first == null;}public void addNode(String name) {if (first == null) {first = new Node(name);first.next = first;size++;} else {Node newNode = new Node(name);Node temp = first;while (temp.next != first) {temp = temp.next;}newNode.next = first;temp.next = newNode;size++;}}public void removeNode(String name) {if (first == null) {return;}// 删除链表头if (first.name.equals(name)) {Node temp = first;while (temp.next != first) {temp = temp.next;}first = first.next;temp.next = first;size--;return;}// 删除链表尾Node temp = first;Node p = null;while (temp.next != first) {p = temp;temp = temp.next;}if (temp.name.equals(name)) {p.next = first;size--;return;}// 删除链表中间Node tem = first;while (!tem.next.name.equals(name)) {tem = tem.next;}tem.next.next = tem.next;size--;}public void insertNode(String data, String name) {// 插入到指定位置之后Node temp = first;while (!temp.name.equals(data)) {temp = temp.next;}Node newNode = new Node(name);newNode.next = temp.next;temp.next = newNode;size++;}public void display() {Node temp = first;if(temp.next == first){System.out.println(temp.name+"   ==>:   "+temp.next.name);return;}while (temp.next != first) {System.out.println(temp.name+"   ==>:   "+temp.next.name);temp = temp.next;}System.out.println(temp.name+"   ==>:   "+temp.next.name);}public void insertFirst(String name) {// 插入到链表的第一个位置Node newNode = new Node(name);newNode.next = first;first = newNode;if(first.next == null){first.next = first;size++;return;}Node second = first.next;while (second.next != first.next) {second = second.next;}second.next = first;size++;}
}

4,测试类

public class Ctest {public static void main(String[] args) {CLink clink = new CLink();clink.insertFirst("外县典吏");clink.addNode("翰林院待诏");clink.addNode("各部院九品笔贴式");clink.addNode("翰林院典簿");clink.addNode("太医院御医");clink.addNode("翰林院检讨");clink.addNode("翰林院修编");clink.addNode("翰林院修撰");clink.addNode("国子监司业");clink.addNode("鸿胪寺少卿");clink.addNode("光禄寺少卿");clink.addNode("翰林院侍读学士");clink.addNode("大理寺少卿");clink.addNode("光禄寺卿");clink.addNode("都察院左副都御史");clink.addNode("各省巡抚");clink.addNode("各省巡抚");clink.addNode("太子少傅");clink.addNode("少师");clink.addNode("太师");clink.display();System.out.println("================我是分界线================");clink.removeNode("太师");clink.display();System.out.println("================我是分界线================");clink.removeNode("外县典吏");clink.display();clink.insertNode("少师", "太师");clink.display();System.out.println(clink.size);}
}


5,打印结果

外县典吏   ==>:   翰林院待诏
翰林院待诏   ==>:   各部院九品笔贴式
各部院九品笔贴式   ==>:   翰林院典簿
翰林院典簿   ==>:   太医院御医
太医院御医   ==>:   翰林院检讨
翰林院检讨   ==>:   翰林院修编
翰林院修编   ==>:   翰林院修撰
翰林院修撰   ==>:   国子监司业
国子监司业   ==>:   鸿胪寺少卿
鸿胪寺少卿   ==>:   光禄寺少卿
光禄寺少卿   ==>:   翰林院侍读学士
翰林院侍读学士   ==>:   大理寺少卿
大理寺少卿   ==>:   光禄寺卿
光禄寺卿   ==>:   都察院左副都御史
都察院左副都御史   ==>:   各省巡抚
各省巡抚   ==>:   各省巡抚
各省巡抚   ==>:   太子少傅
太子少傅   ==>:   少师
少师   ==>:   太师
太师   ==>:   外县典吏
================我是分界线================
外县典吏   ==>:   翰林院待诏
翰林院待诏   ==>:   各部院九品笔贴式
各部院九品笔贴式   ==>:   翰林院典簿
翰林院典簿   ==>:   太医院御医
太医院御医   ==>:   翰林院检讨
翰林院检讨   ==>:   翰林院修编
翰林院修编   ==>:   翰林院修撰
翰林院修撰   ==>:   国子监司业
国子监司业   ==>:   鸿胪寺少卿
鸿胪寺少卿   ==>:   光禄寺少卿
光禄寺少卿   ==>:   翰林院侍读学士
翰林院侍读学士   ==>:   大理寺少卿
大理寺少卿   ==>:   光禄寺卿
光禄寺卿   ==>:   都察院左副都御史
都察院左副都御史   ==>:   各省巡抚
各省巡抚   ==>:   各省巡抚
各省巡抚   ==>:   太子少傅
太子少傅   ==>:   少师
少师   ==>:   外县典吏
================我是分界线================
翰林院待诏   ==>:   各部院九品笔贴式
各部院九品笔贴式   ==>:   翰林院典簿
翰林院典簿   ==>:   太医院御医
太医院御医   ==>:   翰林院检讨
翰林院检讨   ==>:   翰林院修编
翰林院修编   ==>:   翰林院修撰
翰林院修撰   ==>:   国子监司业
国子监司业   ==>:   鸿胪寺少卿
鸿胪寺少卿   ==>:   光禄寺少卿
光禄寺少卿   ==>:   翰林院侍读学士
翰林院侍读学士   ==>:   大理寺少卿
大理寺少卿   ==>:   光禄寺卿
光禄寺卿   ==>:   都察院左副都御史
都察院左副都御史   ==>:   各省巡抚
各省巡抚   ==>:   各省巡抚
各省巡抚   ==>:   太子少傅
太子少傅   ==>:   少师
少师   ==>:   翰林院待诏
翰林院待诏   ==>:   各部院九品笔贴式
各部院九品笔贴式   ==>:   翰林院典簿
翰林院典簿   ==>:   太医院御医
太医院御医   ==>:   翰林院检讨
翰林院检讨   ==>:   翰林院修编
翰林院修编   ==>:   翰林院修撰
翰林院修撰   ==>:   国子监司业
国子监司业   ==>:   鸿胪寺少卿
鸿胪寺少卿   ==>:   光禄寺少卿
光禄寺少卿   ==>:   翰林院侍读学士
翰林院侍读学士   ==>:   大理寺少卿
大理寺少卿   ==>:   光禄寺卿
光禄寺卿   ==>:   都察院左副都御史
都察院左副都御史   ==>:   各省巡抚
各省巡抚   ==>:   各省巡抚
各省巡抚   ==>:   太子少傅
太子少傅   ==>:   少师
少师   ==>:   太师
太师   ==>:   翰林院待诏
19

 

转载于:.html

本文标签: 链表