概述
package tset50;
public class MyLinkedList {
private Node head; //头节点
private int size;
public MyLinkedList() {
head = new Node(null); //一个空节点
}
/**
* 在尾部添加
* @param data
*/
public void remove(int index) {
if(index >= size) {
throw new ArrayIndexOutOfBoundsException();
}
Node node =head;
int idx=-1;
while(idx!=index&&node.next!=null) {
++idx;
node = node.next;
}
if(node.next == null) {
node.pre.next=null;
node.pre=null;
}
else {
node.next.pre=node.pre;
node.pre.next=node.next;
}
node = null;
--size;
}
public void set(int index,Object data) {
if(index >= size) {
throw new ArrayIndexOutOfBoundsException();
}
Node node =head;
int idx=-1;
while(idx!=index&&node.next!=null) {
++idx;
node = node.next;
}
node.data=data;
}
public void add(Object data) {
Node temp = head;
while(temp.next!=null) {
temp= temp.next;
}
Node new_node = new Node(data);
temp.next = new_node;
new_node.pre = temp;//新节点的上一个节点是尾节点
++size;
}
/**
* 这么神奇?
* @param data
*/
public void addFirst(Object data) {
head.data=data;
Node new_node = new Node();
new_node.next=head;
head.pre = new_node;
head = new_node;
++size;
}
public int getSize() {
return size;
}
public String toString() {
if(head.next==null) {
return "列表为空";
}
Node temp = head.next;
StringBuffer sbf = new StringBuffer();
while(temp!=null) {
sbf.append(temp.data+"t");
temp = temp.next;
}
return sbf.toString();
}
class Node{
Object data;
Node next;
Node pre;
@Override
public String toString() {
return "Node [data=" + data + ", next=" + next + ", pre=" + pre + "]";
}
public Node() {
super();
}
public Node(Object data) {
super();
this.data = data;
this.next = null;
this.pre = null;
}
}
}
// 测试类
package tset50;
public class TestMylinkList {
public static void main(String[] args) {
MyLinkedList my = new MyLinkedList();
System.out.println(my);
my.add(1);
my.add(2);
my.addFirst(3);
my.addFirst(10);
my.add(20);
System.out.println(my);
my.remove(0);
System.out.println(my);
my.set(0, 100);
System.out.println(my);
}
}
最后
以上就是从容黑裤为你收集整理的【Java】手打双向链表的全部内容,希望文章能够帮你解决【Java】手打双向链表所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复