1.什么是单链表以及单链表的基本创建
1.1什么是单链表?
相较于顺序表来说,由于顺序表存储数据的性能,使得顺序表对内存的占有非常大,同时在增加和删除操作时非常的麻烦。而单链表,通过上一个元素中的内存地址指向下一个元素,从而形成了链表,我们可以通过遍历来获取元素。
图中就是一个单链表
数据域中存放的是获取到的元素的数据
指针域中存放的是下一个元素的地址
链表的特点是:在任意单元中存储,物理上存储元素可以是连续的也可以是不连续的。
1.2链表的创建
我们首先创建一个Node类,具备单链表的初始功能
class Node{
public int vel;//存放数据
public Node next;//指针域,默认为空
public Node(int vel) { //初始化时将数据存放进来
this.vel = vel;
}
}
之后我们就可以通过Node类产生一个新的链表
Node node1=new Node(10);
Node node2=new Node(20);
Node node3=new Node(30);
node1.next=node2;
node2.next=node3;
这样我们的一个链表就基本创建好了。
2.对于链表功能的实现
2.1对于链表的打印
public void dispaly(){
Node cur=this.head;
while (cur!=null){
System.out.print(cur.vel+" ");
cur=cur.next;
}
System.out.println();
}
我们将链表遍历从而打印出每一个数
2.2对于链表的头插法
//头插法
public void addFirsh(int data){
Node node=new Node(data);
if(this.head!=null){
node.next=this.head;
this.head=node;
}else{
this.head=node;
}
}
我们通过定义数据进行测试
MyLinkedList myLinkedList=new MyLinkedList();
myLinkedList.addFirsh(1);
myLinkedList.addFirsh(2);
myLinkedList.addFirsh(3);
myLinkedList.addFirsh(4);
myLinkedList.dispaly();
得到结果4 3 2 1说明代码没问题