读书人

C#单向链表的兑现

发布时间: 2012-11-04 10:42:41 作者: rapoo

C#单向链表的实现
public class UserTbl
{
private string UserName;

public string UserName1
{
get { return UserName; }
set { UserName = value; }
}


public UserTbl(string aa)
{
this.UserName = aa;
}
public override string ToString()
{
return this.UserName1;
}
}


public class Nodes<T>
{
T data;
Nodes<T> next;

public Nodes(T data)
{
this.data = data;
this.next = null;
}

public T Data
{
get { return data; }
set { data = value; }
}

public Nodes<T> Next
{
get { return next; }
set { next = value; }
}

public void Append(Nodes<T> newNode)
{
if (newNode == null)
{
this.next = newNode;
}
else
{
this.next.Append(newNode);
}
}

public override string ToString()
{
string output = data.ToString();
if (next != null)
{
output += "," + next.ToString();
}
return output;
}

}


public class ListArray<T>
{
Nodes<T> headNode = null;

public void Add(T data)
{
if (data == null)
{
headNode = new Nodes<T>(data);
}
else
{
headNode.Append(new Nodes<T>(data));
}
}

public T this[int index]{
get
{
int ctr = 0;
Nodes<T> Node = headNode;

while (Node != null && ctr <= index)
{
if (ctr == index)
{
return Node.Data;
}
else
{
Node = Node.Next;
}
ctr++;
}
return default(T);

}
}

public override string ToString()
{
if (headNode != null)
{
return this.headNode.ToString();
}
else
{
return string.Empty;
}
}
}


public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

LinkedList<UserTbl> UserTbls = new LinkedList<UserTbl>();
UserTbls.Add(new UserTbl("John"));
UserTbls.Add(new UserTbl("Paul"));
UserTbls.Add(new UserTbl("George"));
UserTbls.Add(new UserTbl("Ringo"));
Response.Write(UserTbls[0].UserName1);
}


}
偶来过了!

读书人网 >C#

热点推荐