1.链表这玩意以前全是手动写出来的....真是寄了
底层逻辑仍然是泛型链表类套着泛型结点类再套着泛型对象,前者一个的地址,后者的地址
本质上仍然只是一个双向链表
其模拟代码如下
package com.col;
public class MyLink {
public static void main(String[] args) {
Linked as=new Linked();
as.add(new nod(1));
as.add(new nod(2));
as.add(new nod(3));
as.add(new nod(4));
as.tString();
}
}
class nod{
nod per;
nod nex;
int num;
public nod(int num) {
this.num = num;
}
public nod getPer() {
return per;
}
public void setPer(nod per) {
this.per = per;
}
public nod getNex() {
return nex;
}
public void setNex(nod nex) {
this.nex = nex;
}
@Override
public String toString() {
return "nod{" +
"per=" + per +
", n=" +num+
", nex=" + nex +
'}';
}
}
class Linked{
//认为在链表对象里定义头节点和尾节点
//其实LinkedList类对象里面是自带一个计数器的,就是Size
//不过在这个里面没啥用的
nod First;
nod fina;
public Linked() {
}
//双向链表要注意的就是前后都要相互连接
public void add(nod n){
if(First==null){
n.setPer(null);
First=n;
}else {
fina.setNex(n);
n.setPer(fina);
}
fina=n;
}
public void tString() {
nod su=First;
while(su!=null){
System.out.println(su.num);
su=su.nex;
}
}
比起一般的手写链表,里面多出的东西就是first,last和计数器
具体方法详见api文件,,,,,,,吧