链表的实现

package com.links;

public class Lists {

private int size;
private Room head;
private Room end;
{
size=1;
head=new Room();
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public Room getHead() {
return head;
}
public void setHead(Room head) {
this.head = head;
}
public Room getEnd() {
return end;
}
public void setEnd(Room end) {
this.end = end;
}

public void insert (int i){

}
public void del(int i){
if(i<size && i>0){
Room pre=find(i-1);
Room cuent=find(i);
pre.setNext(cuent.getNext());
cuent.setNext(null);
size--;
}else if(i==0){
System.out.println("不能删除节点0");
}
}
public Room find(int i){
Room room=head;
if (i<size && i >0){
while(i>0){
room=room.getNext();
i--;
}
}
else if(i==0){
return head;
}else{
//throw exception
}
return room;
}
public Room findEnd(){
int i=size-1;
end=head;
while(i>0){
end=end.getNext();
i--;
}
return end;
}
public void add(int i,Room room){
if(i<size &&i>=0){
//Room cuent=;
find(i).setNext(room);
//room.setNext(cuent.getNext());
size++;
}else if(i>=size){
room.setNext(null);
findEnd().setNext(room);
size++;
//throw exception
}
}

}
-----------------------------------------------------


package com.links;

public class Room {

private Object data;
private Room next;
public Room(){

}
public Room(Object data){
setData(data);
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Room getNext() {
return next;
}
public void setNext(Room next) {
this.next = next;
}


}

---------------------------------------------------------

package com.links;

public class ListTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("创建对象");
Lists list=new Lists();
for(int i=0;i<4;i++){
list.add(i, new Room(i));
}
System.out.println("增加超过长度的对象");
list.add(6, new Room(11));
System.out.println("删除第二个对象");
list.del(2);
System.out.println("最后一个对象的值是"+list.findEnd().getData());

// list.add(1, new Room(22));
// System.out.println(list.find(3).getData());
// System.out.println(list.find(2).getData());
for(int i=1;i<list.getSize();i++){
System.out.println(list.find(i).getData());
}

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值