java 实现自定义链表
Java  /  管理员 发布于 3年前   188
1.链表结构
链表是链式的结构
2.链表的组成
链表是由头节点,中间节点和尾节点组成
节点是由两个部分组成:
1.数据域
2.引用域
3.链表的实现
Node{
数据域
引用域
}
MyLinkedList{
记录元素总数的属性
头节点属性
head;
尾节点属性
trail;
}
下面上代码
public class DoubleLinkedList{private static class Node {Object value;Node prev = this;Node next = this;Node(Object v) {value = v;}public String toString() {return value.toString();}}private Node head = new Node(null);// 头节点private int size;// 链表大小// 以下是接口方法public boolean addFirst(Object o) {addAfter(new Node(o), head);return true;}public boolean addLast(Object o) {addBefore(new Node(o), head);return true;}public boolean add(Object o) {return addLast(o);}public boolean add(int index, Object o) {addBefore(new Node(o), getNode(index));return true;}public boolean revise(int index, Object o) {reviseNode(new Node(o), getNode(index));return true;}public boolean remove(int index) {removeNode(getNode(index));return true;}public boolean removeFirst() {removeNode(head.next);return true;}public boolean removeLast() {removeNode(head.prev);return true;}public Object get(int index) {return getNode(index).value;}public int size() {return size;}public String toString() {StringBuffer s = new StringBuffer();Node node = head;for (int i = 0; i < size; i++) {node = node.next;if (i > 0)s.append(" ");s.append(node.value);}return s.toString();}private Node getNode(int index) {if (index < 0 || index >= size)System.out.println("错误");Node node = head.next;for (int i = 0; i < index; i++)node = node.next;return node;}private void addBefore(Node newNode, Node node) {newNode.next = node;newNode.prev = node.prev;newNode.next.prev = newNode;newNode.prev.next = newNode;size++;}private void reviseNode(Node newNode, Node node) {newNode.next = node.next;newNode.prev = node.prev;newNode.next.prev = newNode;newNode.prev.next = newNode;}private void addAfter(Node newNode, Node node) {newNode.prev = node;newNode.next = node.next;newNode.next.prev = newNode;newNode.prev.next = newNode;size++;}private void removeNode(Node node) {node.prev.next = node.next;node.next.prev = node.prev;node.prev = null;node.next = null;size--;}}
博主 在
2023年国务院办公厅春节放假通知:1月21日起休7天中评论 @ xiaoB 你只管努力,剩下的叫给天意;天若有情天亦老,..xiaoB 在
2023年国务院办公厅春节放假通知:1月21日起休7天中评论 会不会春节放假后又阳一次?..BUG4 在
你翻墙过吗?国内使用vpn翻墙可能会被网警抓,你需了解的事中评论 不是吧?..博主 在
go语言+beego框架中获取get,post请求的所有参数中评论 @ t1 直接在router.go文件中配就ok..Jade 在
如何在MySQL查询中获得当月记录中评论 Dear zongscan.com team, We can skyroc..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号