随笔分类 - 数据结构
摘要:一、链表 1.链表有关的知识 (1)链表问题算法难度不高,主要考察代码实现能力 (2)链表和数组都是一种线性结构 数组是一段连续分配的存储空间,链表空间不一定保证连续,是临时分配的。 (3)链表的分类 按链接方向分类:单链表、双链表按有环无环分类:普通链表、循环链表 循环链表是首尾相接的链表,它的最
阅读全文
摘要:1.二分查找和AVL树查找 二分查找要求元素可以随机访问,所以决定了需要把元素存储在连续内存。这样查找确实很快,但是插入和删除元素的时候,为了保证元素的有序性,就需要大量的移动元素了。如果需要的是一个能够进行二分查找,又能快速添加和删除元素的数据结构,首先就是二叉查找树,二叉查找树在最坏情况下可能变
阅读全文
摘要:动态查找树主要有二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree), 红黑树 (Red-Black Tree ), 都是典型的二叉查找树结构,查找的时间复杂度 O(log2-N) 与树的深度相关,降低树的深度会提高查找效率,于
阅读全文
摘要:二叉查找树(BSTree)中进行查找、插入和删除操作的时间复杂度都是O(h),其中h为树的高度。BST的高度直接影响到操作实现的性能,最坏情况下,二叉查找树会退化成一个单链表,比如插入的节点序列本身就有序,这时候性能会下降到O(n)。可见在树的规模固定的前提下,BST的高度越低越好。 1.平衡二叉树
阅读全文
摘要:一、字典树的概念 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。与二叉查找树不同,Trie树的键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串
阅读全文