链表结构

链表是一种数据类型,原理是在一种类中定义本类的属性,这样定义的属性既是创建对象的属性,又是另一个对象,因为这个属性也是属于这个类,所以这个属性也有本类的属性,以此类推,就将一个一个的对象连接起来,实现了数据的组织。具体方法为
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,方法中作相应的改变而已,具体方法省略。
利用链表可进行哈夫曼二叉树的构造,具体
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值