链式存储:充分利用存储空间
java链表
单链表
节点的构建
public class Node{
int data;//存储数据
Node next;//存储下一个结点地址,如果是最后一个那么让他指向null
public Node(){//结点的构造函数
this.data=data;
this.next=next;//这个可以不写;
}
}
public class Main {
public static void main(String[]args ) {
Node n1=new Node(1,null);
Node n2=new Node(3,null);
Node n3=new Node(4,null);
n1.next=n2;
n2.next=n3;
}
}
如上单链表创建方式不便于维护于是我们有了下面的单链表构建方式
首先构建一个节点类
public class ListNode {
public int value;
public ListNode next;
public ListNode(int value) {
this.value=value;
}
//下面是一个无参构造,可以在定义结点的时候不进行赋值默认值为空
public ListNode() {
}
}
定义尾指针
public class LinkList {
public ListNode head=null;
public ListNode temp=null;
public void insert(int value) {
ListNode listnode=new ListNode(value);
if(head==null) {
//这一步是第一个头节点赋值
head=listnode;
temp=listnode;
return;
}
//让temp一直指向尾结点
temp.next=listnode;
temp=temp.next;
}
//这是输出链表里面的值
public void m2() {
ListNode temp1=head;
while(temp1!=null) {
System.out.print(temp1.value+", ");
temp1=temp1.next;
}
}
}
主函数
public class Main {
public static void main(String[]args) {
LinkList link=new LinkList();
link.insert(4);
link.insert(5);
link.insert(6);
link.m2();
}
}