LinKList链式结构
- 创建节点类Node;元素地址,添加中间存储值obj
package com.LinkList;
public class Node {
private Node firstpro;
private Node lastpro;
private Object pro;
public Object getPro() {
return pro;
}
public void setPro(Object pro) {
this.pro = pro;
}
public Node getFirstpro() {
return firstpro;
}
public void setFirstpro(Node firstpro) {
this.firstpro = firstpro;
}
public Node getLastpro() {
return lastpro;
}
public void setLastpro(Node lastpro) {
this.lastpro = lastpro;
}
@Override
public String toString() {
return "Node{" +
"firstpro=" + firstpro +
", lastpro=" + lastpro +
", pro=" + pro +
'}';
}
}
- 创建节点'实现节点存储,读取'
package com.LinkList;
public class LineListDemo {
Node Firspro;
Node Lastpro;
int count = 0;
//做一个空构造器
public LineListDemo() {
}
//写一个add的添加元素到链中的方法
public void add(Object obj){
if(Firspro == null){
//对每个链创建为对象这是是上面创建的元素地址LinkList
Node node =new Node();
//只有一个节点的时后前后都为空
node.setFirstpro(null);
node.setLastpro(null);
//中间值为传入值
node.setPro(obj);
Firspro =node;
Lastpro =node;
}else {
//将链封装成对象
Node node1 =new Node();
// 链中的第一个元素指向上一级的最后一个地址Lastpro
node1.setFirstpro(Lastpro);
//链中的最后一个元素值依旧为空
node1.setLastpro(null);
//中间值依旧为传入值
node1.setPro(obj);
//需要将当前链中的最后一个元素地址指向node1
Lastpro =node1;
}
//对链进行计数
count++;
}
public int EleCount(){
return count;
}
public Object getNext(int index){
//获取列表头元素
Node n = Firspro;
for (int i =0;i<=index;i++){
//让未节点是下一个节点元素
Node lastpro = n.getLastpro();
}
//返回此节点的中间元素值
return n.getPro();
}
}
class DemoImager{
public static void main(String[] args) {
//将LineListDemo封装成对象
LineListDemo LLDemo = new LineListDemo();
//调用方法add将元素添加到链中
LLDemo.add(265);
LLDemo.add(263);
LLDemo.add(264);
System.out.println(LLDemo.EleCount());
System.out.println(LLDemo.getNext(2));
}
}