链表结构

xiaoxiao2021-03-01  21

链表是一种数据类型,原理是在一种类中定义本类的属性,这样定义的属性既是创建对象的属性,又是另一个对象,因为这个属性也是属于这个类,所以这个属性也有本类的属性,以此类推,就将一个一个的对象连接起来,实现了数据的组织。具体方法为 public class Node{ Node next; int data; } 想要调用下一个数据就要用this.next来转换属性值。 链表因为其特殊的连接方式,便拥有着特殊的添加方法,具体形式是 public void add(Node n){ if(list.length==0){//length是定义的链表的长度 header=n;//header是定义的链表的头结点 lastest=n;//lastest是定义的链表的末节点 list.length++; } else{ lastest.next=n; lastest=lastestnext; list.length++: } } 链表的获取方法也非常特殊 public Node get(int index){ if(index>0&&index<list.length){ Node n =header; for(int i=0;i<index;i++){ n=n.next; } return n; } else throw new java.lang.ArrayIndexoutofException(); } 既然有添加的方法就必然有删除的方法 public void remove(int index){ if(index==0){ header.next=header; list.length--; } else if(index==list.length-1){ this.get(list.length-2).next=null; this.get(list.length-2)=lestest; list.length--; } else{ this.get(index-1).next=this.get(index.next); list.length--; } } 双向链表是建立在单向链表上的一种数据结构,本质上无差异,只是在Node中多定义一种last属性,并在add,get,remov,方法中作相应的改变而已,具体方法省略。 利用链表可进行哈夫曼二叉树的构造,具体
转载请注明原文地址: https://www.6miu.com/read-4050318.html

最新回复(0)