package com.company;
//链表:一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到是下一个节点的指针(Pointer)
public class jianbiao71 {
public static void main(String[] args){
NodeManager nm=new NodeManager();
nm.add(5);
nm.add(4);
nm.add(3);
nm.add(2);
nm.add(1);
nm.print();
nm.det(1);
//插入数据
nm.insert(2,20);
nm.print();
}
}
class NodeManager{
private Node root;//根节点
private int currentIndex=0;//节点的需要、每次操作从零开始
public void add(int data){
if(root==null){
root=new Node(data);
}else {
root.addNode(data);
}
}
public void det(int data){
if(root.getData()==data){
root=root.next;
}else {
root.delNode(data);
}
}
public void print(){
if(root!=null){
System.out.println(root.getData()+"》");
root.printNode();
}
}
public boolean find(){
return false;
}
public void update( int oldData,int newDate){
}
public void insert(int index,int data){
if(index<0)return;
currentIndex=0;
if(index==currentIndex){
Node newNode=new Node(data);
//后
root.next=newNode;
root=newNode;
}else {
root.insertNode(index ,data);
}
}
private class Node{
private int data;
private Node next;// 把当前类型作为属性
public Node (int data){
this.data=data;
}
public void setData(int data) {
this.data = data;
}
public int getData(){
return data;
}
public void addNode(int data){
if(this.next==null){
this.next=new Node(data);
}else {
this.next.addNode(data);
}
}
//删除节点
public void delNode(int data){
if(this.next.data!=data){
this.next=this.next.next;
}else {
this.next.delNode(data);
}
}
// 输出所有节点
public void printNode(){
if(this.next!=null){
System.out.println(this.next.data+">>");
this.next.printNode();
}
}
//查找
public boolean findNode(int data){
return false;
}
// 插入节点
public void insertNode(int index,int data){
currentIndex++;
if(index==currentIndex){
Node newNode=new Node(data);
newNode.next=this.next;
this.next=newNode;
}else {
this.next.insertNode(index,data);
}
}
}
//添加节点
}