C#数据结构选择

选择一个合适的数据结构会对程序的性能有着显著的提高

线性表和链表:

  1、LinkedList<T>:适合于元素数组不固定,存在大量列表的头尾添加动作场合。其它可使用List<T>。

  2、Arra:元素数量固定,需要用到检索(即索引器)。

  3、List<T>:元素数量不固定,需要用到索引器。

栈和队列(只有在模拟栈和队列时才考虑):

  1、Stack (Stack<T>):当需要实现 LIFO(Last In First Out)时。

  2、Queue (Queue<T>):当需要实现 FIFO(First In First Out)时。

 哈希(需要大规模查找):

  1、Hash table (Dictionary<K,T>):当需要使用键值对(Key-Value)来快速添加和查找,并且元素没有特定的顺序时。有了泛型版本的字典,我们几乎永远不需要使用非泛型的HashTable

  2、Tree-based dictionary (SortedDictionary<K,T>):当需要使用键值对(Key-Value)来快速添加和查找,并且元素总是需要根据 Key 来排序时。

 集合(保存一组唯一的值/模拟集合运算):

  1、Hash table based set (HashSet<T>):当需要保存一组唯一的值,并且元素没有特定顺序时。

  2、Tree based set (SortedSet<T>):当需要保存一组唯一的值,并且元素总是需要排序时。


树:

 

 

参考风口上的猪.Net面试系列文章http://www.cnblogs.com/haoyifei/p/5790168.html

posted @ 2016-10-26 14:37  蜗牛不要快  阅读(186)  评论(0编辑  收藏  举报