单链表(java版)
上一篇 /
下一篇 2008-04-30 08:28:25
/ 个人分类:数据结构
1.Lnode
|
package zhangy;
public class LinkNode {
public Object data;
private LinkNode next;
LinkNode(Object data)
{
this.data=data;
}
LinkNode()
{
}
public LinkNode getNext() {
return next;
}
public void setNext(LinkNode next) {
this.next = next;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
} |
1. Lnode
2.Li
1.LinkList
|
package zhangy;
public class LinkList implements List{
private LinkNode head;
private LinkNode tail;
private int size;
LinkList()
{
head=tail=new LinkNode();
size=0;
}
public void insertElement(int i,Object o)throws Exception
{
//如果在0位置或者大于size的位置
if(i<=0||i>size+1)
{
throw new Exception("位置错误");
}
LinkNode newnode=new LinkNode(o);
LinkNode temp=head;
//如果现在0个元素
if(head==tail)
{
head.setNext(newnode);
tail=newnode;
}
//如果插在最后处
else if(i==size+1)
{
tail.setNext(newnode);
tail=newnode;
}
//普通情况
else
{
for(int j=1;j<i;j++)
{
temp=temp.getNext();
}
newnode.setNext(temp.getNext());
temp.setNext(newnode);
}
size++;
}
public void deleteElement(int i) throws Exception
{
if(i<=0||i>size)
{
throw new Exception("位置出错");
}
if(size==1)
{
head.setNext(null);
tail=head;
}
else
{
LinkNode temp=head;
for(int j=1;j<=i-1;j++)
{
temp=temp.getNext();
}
temp.setNext(temp.getNext().getNext());
}
size--;
}
public Object getElement(int i) throws Exception
{
if(i<1||i>size)
{
throw new Exception("位置错误");
}
LinkNode temp=head;
for(int j=1;j<=i;j++)
{
temp=temp.getNext();
}
return temp;
}
public int getSize()
{
return size;
}
public boolean isEmpty()
{
if(size==0)return true;
else return false;
}
} |
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: