扎实基础_数据结构

数据结构:

数组 string[]  set = new string[5];   需要处理的元素数量确定并且需要使用下标时可以考虑,不过建议使用List<T>

 优点: 连续存储在内存上,索引快, 

  缺点:固定长度,插入慢

集合         ArrayList aList = new ArrayList(); 

优点:动态长度与类型

  缺点:不同类型导致类型不安全, 装箱拆箱的性能损耗

不推荐使用,建议用List<T>

泛型集合 List<int> list = new List<int>(); 优点:类型安全,取消了装箱拆箱的性能损耗 融合了Array,和ArrayList的优点 需要处理的元素数量不确定时 通常建议使用
字典         Dictionary<int, string> dt = new Dictionary<int, string>();   需要键值对,快速操作
链表   

链表适合元素数量不固定,需要经常增减节点的情况,2端都可以增减

链表适合元素数量不固定,需要经常增减节点的情况

列表:Queue<T> 先进先出       
列表:Stack<T> 先进后出    

堆栈https://blog.csdn.net/javazejian/article/details/53362993

二叉树的优势
       在实际使用时会根据链表和有序数组等数据结构的不同优势进行选择。有序数组的优势在于二分查找,链表的优势在于数据项的插入和数据项的删除。但是在有序数组中插入数据就会很慢,同样在链表中查找数据项效率就很低。综合以上情况,二叉树可以利用链表和有序数组的优势,同时可以合并有序数组和链表的优势,二叉树也是一种常用的据结构。

完全二叉树:

  叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。
 
平衡二叉树:
  左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
二叉查找树(BST):
  二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree)。
B,B+,B*树
  MySQL是基于B+树聚集索引组织表 B+树的叶子节点链表结构相比于 B-树便于扫库,和范围检索。

原文地址:https://www.cnblogs.com/LZXX/p/12705932.html