首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#单向链表的兑现

2012-11-04 
C#单向链表的实现public class UserTbl{private string UserNamepublic string UserName1{get { return U

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);
    }


}
偶来过了!

热点排行