OSDN Git Service

use VertexHeap Generics
[tdcgexplorer/tso2mqo.git] / VertexHeap.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 \r
5 namespace Tso2MqoGui\r
6 {\r
7     public class VertexHeap<T>\r
8     {\r
9         public Dictionary<T, ushort>  map    = new Dictionary<T, ushort>();\r
10         public List<T>                verts  = new List<T>();\r
11 \r
12         public void Clear()\r
13         {\r
14             map.Clear();\r
15             verts.Clear();\r
16         }\r
17 \r
18         public ushort Add(T v)\r
19         {\r
20             ushort n;\r
21 \r
22             if(map.TryGetValue(v, out n))\r
23                 return n;\r
24 \r
25             n   = (ushort)verts.Count;\r
26             map.Add(v, n);\r
27             verts.Add(v);\r
28             return n;\r
29         }\r
30 \r
31         public int      Count           { get { return verts.Count;   } }\r
32         public ushort   this[T index]   { get { return map[index];    } }\r
33         public T        this[int index] { get { return verts[index];  } }\r
34     }\r
35 }\r