C#建立單迴圈鏈表

來源:互聯網
上載者:User

     前幾天的培訓作業,讓我用C#語言來建立一個單迴圈鏈表,這個以前在講資料結構的時候有學過,不過那時候用的是C,其中用到的是指標,而在C#裡面沒有了指標,那在C#裡面要怎麼建立一個單迴圈鏈表呢?其實在建立一個新的對象的時候,我們就可以把他理解為一個指標,C#中並不是說不能用指標,而是將他封裝了起來,對使用者是不可見的,接下來就是我用C#實現的單迴圈鏈表。

     首先當然是定義一個結構體,在C#裡面那就是一個類,代碼如下:

     class CircleSingleNode<T>
    {
        public T Data;
        public CircleSingleNode<T> nodeNext;

        public CircleSingleNode() { }
        public CircleSingleNode(T data) { Data = data; }
    }

    順便說一下我們經理讓我用泛型來寫,畢竟要盡量把學過的東西運用起來。

    定義好了一個結構體以後,就要定義一個添加節點的方法了,單迴圈鏈表的話只有一個後節點,沒有前節點,然後最後一個節點的後節點是指向第一個節點,這樣就形成了一個迴圈。我這裡是定義了一個頭結點來存放第一個節點,代碼如下:

    class CircleSingleTable<T>
    {
        public int count { get; set; }
        CircleSingleNode<T> header;
        CircleSingleNode<T> current;
        public CircleSingleTable(T data)
        {
            header = new CircleSingleNode<T>(data);
            current = header;
        }

        public void AddLastNode(T data)
        {
            CircleSingleNode<T> newNode = new CircleSingleNode<T>(data);
            current.nodeNext = newNode;
            newNode.nodeNext = header;
            current = newNode;
            count++;
        }

        public void showMessage(int count)
        {
            for (int i = 0; i < count;i++ )
            {
                header = header.nodeNext;
                Console.WriteLine(header.Data.ToString());
            }
        }
    }

     但是這樣寫了以後,會出現一個小錯誤,就是比如我迴圈添加0-9這10個數到鏈表中,然後列印出來的結果是0012345678900123456789....這樣子的 我感覺是在賦值第一個節點的nodeNext時沒賦值好,使得他這個頭結點的下一個節點指向還是這個頭結點的值 然後才指向1 2 3... 不知道這個問題該怎麼解決 看文章的大神們給些意見吧 謝謝了...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.