| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 745 人关注过本帖
标题:单链表的末尾添加结点操作
只看楼主 加入收藏
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
结帖率:100%
收藏
 问题点数:0 回复次数:4 
单链表的末尾添加结点操作
程序代码:
    public void Append(T item)
    {
        Node<T> q = new Node<T>(item);
        Node<T> p = new Node<T>();

        if (head == null)
        {
            head = q;
            return;
        }

        p = head;

        while (p.Next != null)
        {
            p = p.Next;
        }

        p.Next = q;
    }
搜索更多相关主题的帖子: head 
2012-04-18 15:10
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
不懂C#

代码是从书上敲下来的 单链表的一部分 具体功能rt
LS代码中 Node<T> p = new Node<T>();
从整理的实现上不理解。


2012-04-18 15:15
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
程序代码:
    public void Append(T item)
    {
        Node<T> q = new Node<T>(item);
      
        if (head == null)
        {
            head = q;

            return;
        }

        Node<T> p = head;

        while (p.Next != null)
        {
            p = p.Next;
        }

        p.Next = q;
    }像这样子有什么不妥么?
2012-04-18 15:18
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
程序代码:
using System;

public class Node<T>
{
    private T m_Data;
    private Node<T> m_Next;

    public Node(T nData, Node<T> nNext)
    {
        m_Data = nData;
        m_Next = nNext;
    }

    public Node(T nData)
    {
        m_Data = nData;
        m_Next = null;
    }

    public Node(Node<T> nNext)
    {
        m_Data = default(T);
        m_Next = nNext;
    }

    public Node()
    {
        m_Data = default(T);
        m_Next = null;
    }

    public T GetData
    {
        get
        {
            return m_Data;
        }
        set
        {
            m_Data = value;
        }
    }

    public Node<T> GetNext
    {
        get
        {
            return m_Next;
        }
        set
        {
            m_Next = value;
        }
    }
}

public interface IList<T>
{
    void Inserter(T nElem);//插入元素
    void Reverse();//逆置
    void Print();//输出
}

public class CList<T> : IList<T>
{
    private Node<T> m_Head;//单链表的头引用

    public Node<T> GetHead
    {
        get
        {
            return m_Head;
        }
        set
        {
            m_Head = value;
        }
    }

    public CList()
    {
        m_Head = new Node<T>();//头结点
    }

    public void Inserter(T nElem)//插入元素
    {//末尾插入
        Node<T> nTmp = m_Head;
        while (null != nTmp.GetNext)
        {
            nTmp = nTmp.GetNext;
        }
        nTmp.GetNext = new Node<T>(nElem);
    }

    public void Reverse()//逆置
    {
        Node<T> nTmp = m_Head.GetNext;
        m_Head.GetNext = null;
        while (null != nTmp)
        {
            Node<T> Tmp = nTmp.GetNext;
            nTmp.GetNext = m_Head.GetNext;
            m_Head.GetNext = nTmp;
            nTmp = Tmp;
        }
    }

    public void Print()//输出
    {
        Node<T> nTmp = m_Head.GetNext;
        while (null != nTmp)
        {
            Console.Write("{0}  ", nTmp.GetData);
            nTmp = nTmp.GetNext;
        }
        Console.WriteLine();
    }
}

public class App
{
    public static void Main()
    {
        CList<int> list = new CList<int>();
        int[] nArray = new int[] { 1,2,3,4,5,6};

        for (int i = 0; i < nArray.Length; ++i)
        {
            list.Inserter(nArray[i]);
        }

        list.Print();
        list.Reverse();
        list.Print();
    }
}
2012-04-18 16:44
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
没发现什么问题
2012-04-18 16:46
快速回复:单链表的末尾添加结点操作
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050223 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved