单项链表的数据结构java java单链表头插法
转载
/**
*
*/
package com.wan.xiang.LinkList;
/**
* @author Sakura
* @Desc //TODO 链表类
* @Date 2019年7月21日下午3:59:00
*/
public class LinkList {
Node first;//头结点
Node last;//尾结点
public LinkList() {
//构造带头结点的链表
first = new Node();
last = first;
}
public void addNode(Object data) {
Node temp = new Node(data);
if(last == first) {
//如果链表中只有一个头结点
first.next = temp;
last = temp;
}else {
//头插法
temp.next = first.next;
first.next = temp;
}
}
@Override
//重写toString 输出链表
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
Node temp;
temp = first.next;//头结点没有数据,从首元结点开始遍历
if (temp == null) {
return "{null}";//链表为空返回空链表
} else {
while (temp != null) {
sb.append(temp.data + ",");
temp = temp.next;
}
sb.setCharAt(sb.length() - 1, '}');//将最后一个逗号替换为“}”
return sb.toString();
}
}
public static void main(String[] args) {
LinkList list = new LinkList();
list.addNode("a");
list.addNode("b");
System.out.println(list);
}
}
/**
*
*/
package com.wan.xiang.LinkList;
/**
* @author Sakura
* @Desc //TODO Node class
* @Date 2019年7月21日下午3:57:39
*/
public class Node {
Object data;//data filed
Node next;//指针 filed
public Node() {
next = null;
}
public Node(Object data) {
this.data = data;
next = null;
}
}
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。