資料結構之圖 Part2 - 3

來源:互聯網
上載者:User

標籤:des   style   color   io   資料   art   ar   問題   

十字鏈表

簡單的說就是鄰接表和逆鄰接表的合體,解決了原鄰接表或者逆鄰接表出度和入度的計算無法兼得的問題。

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace LH.GraphConsole{    public struct OrthogonalListGraph    {        public NodeItem[] VertexNodes;        public OrthogonalListGraph(int size)        {            VertexNodes = new NodeItem[size];        }    }    public struct NodeItem    {        public List<OrthEdgeItem> InList;        public List<OrthEdgeItem> OutList;        public NodeItem(List<OrthEdgeItem> inList, List<OrthEdgeItem> outList)        {            InList = inList;            OutList = outList;        }    }    public class OrthEdgeItem    {        public int Weight;        public string Name;        public OrthEdgeItem(int weight, string name)        {            Weight = weight;            Name = name;        }    }}

簡單的主函數:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace LH.GraphConsole{    class Program    {        static void Main(string[] args)        {            OrthogonalList();        }        private static void OrthogonalList()        {            var size = 5;            var orgthListGraph = new OrthogonalListGraph(size);            var orgEdge03 = new OrthEdgeItem(1, "edge03");            var orgEdge10 = new OrthEdgeItem(1, "edge10");            var orgEdge12 = new OrthEdgeItem(1, "edge12");            var orgEdge21 = new OrthEdgeItem(1, "edge21");            var orgEdge20 = new OrthEdgeItem(1, "edge20");            var inList0 = new List<OrthEdgeItem>();            inList0.Add(orgEdge10);            inList0.Add(orgEdge20);            var outList0 = new List<OrthEdgeItem>();            outList0.Add(orgEdge03);            var nodeItem0 = new NodeItem(inList0, outList0);            var nodeItem1 = new NodeItem();            var nodeItem2 = new NodeItem();            var nodeItem3 = new NodeItem();            var nodeItem4 = new NodeItem();            orgthListGraph.VertexNodes[0] = nodeItem0;            orgthListGraph.VertexNodes[1] = nodeItem1;            orgthListGraph.VertexNodes[2] = nodeItem2;            orgthListGraph.VertexNodes[3] = nodeItem3;            orgthListGraph.VertexNodes[4] = nodeItem4;        }    }}
簡要說明,只是為了便於理解資料結構,沒有刻意的去標準實現,見諒。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.