//链表类代码,主要包含新加内容,求大小,删除,插入
public class LinkListClass
{private string sdata;
private LinkListClass Head;
private LinkListClass next;
public LinkListClass()
{
Head=null;
next=null;
}
public void Append(string item) //新增内容
{
LinkListClass p=new LinkListClass();
p.sdata=item;
p.next=null;
if(Head==null)
{
Head=p;
}
else
{
LinkListClass q=new LinkListClass();
q=Head;
while(q.next!=null)
{
q=q.next;
}
q.next=p;
}
}
public int Length() //求链表大小
{
int ilen=0;
LinkListClass p=new LinkListClass();
p=Head;
while(p!=null)
{
ilen++;
p=p.next;
}
return ilen;
}
public void Insert(string data,int index=0) //按位置插入内容
{
LinkListClass p=new LinkListClass();
p.sdata=data;
LinkListClass mybase=new LinkListClass();
mybase=Head;
if(index==0)
{
Head=p;
p.next=mybase;
}
else
{
while(index-->0 && mybase.next!=null)
{
mybase=mybase.next;
}
p.next=mybase.next;
mybase.next=p;
}
}
public bool Delete(int index) // 按位置删除内容
{
if(this.Length()<index)
{
return false;//out of range
}
if(index==0)
{
Head=Head.next;
return true;
}
LinkListClass p=new LinkListClass();
p=Head;
LinkListClass temp=new LinkListClass();
while(index-->0 && p.next!=null)
{
temp=p;
p=p.next;
}
temp.next=p.next;
return true;
}
public string GetValue(int index) //按位置查找值
{
if(this.Length()<index)
{
return "OutOfRange";
}
else
{
LinkListClass p=new LinkListClass();
p=Head;
while(index-->0)
{
p=p.next;
}
return p.sdata;
}
}
public
void Clear()
// 清空链表
{
Head=null;
}
}
//使用代码示例:
LinkListClass Mylinklist=new
LinkListClass();
Mylinklist.Append("c");
Mylinklist.Append("d");
Mylinklist.Insert("E");
Mylinklist.Insert("F",3);
Mylinklist.Insert("H",30);
string buff=Mylinklist.GetValue(3);
Mylinklist.Delete(2);
Mylinklist.Delete(Mylinklist.Length());