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);
}
}
偶来过了!