//链表类代码,主要包含新加内容,求大小,删除,插入
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());