数据结构
超级超级小天才
这个作者很懒,什么都没留下…
展开
-
【数据结构】(六)不相交集类
等价关系在离散数学(Discrete Mathematics)中提到过等价关系(equivalence relation),等价关系是对于任意一对元素 (a,b),存在一个关系R满足以下三个属性:自反性:对于所有的元素a,a R a对称性:a R b == b R a传递性:若 a R b 且 b R c 则 a R c比如空间中的相互平行的线就满足等价关系,线与自身平行、两条平行线...原创 2019-12-25 17:16:13 · 1044 阅读 · 0 评论 -
【数据结构】(一)表(List)与其在C++中的实现与迭代器iterator
抽象数据类型(abstract data type,ADT)是带有一组操作的一些对象的集合。An abstract data type (ADT) is a set of objects together with a set of operations.标准模板库(Standard Template Library,SLT)。实现了ADT等数据结构,这些数据结构被称为集合(collect...原创 2019-08-08 18:56:58 · 810 阅读 · 0 评论 -
【数据结构】(二)栈与队列
栈(stack)栈(stack)是限制插入和删除操作只能在末尾位置上进行的表,该末尾成为栈的顶(top)。是一种后进先出的表(LIFO,Last In First Out)。栈的实现链表实现:使用单向链表实现数组实现:使用数组实现,是更加常用的方式。由C++中的vector中的back、push_back和pop_back可以很简单地实现一个栈。每个栈需要一个用于存储栈数据的数组(st...原创 2019-08-08 21:24:25 · 159 阅读 · 0 评论 -
【数据结构】(三)树、二叉树、二叉查找树、AVL树、伸展树、B树与C++中的set和map
树树的实现实现树时,对于每一个节点,除了存储该节点的数据以外,还需要存储一些外链。一个典型的存储方式是:左孩子右兄弟法,即对于每一个节点,存储节点的数据、指向其孩子中最左边的孩子的指针、指向其紧邻的右侧的兄弟节点的指针。struct TreeNode{ Object element; TreeNode * firstChild; TreeNode * nextSi...原创 2019-08-19 00:41:31 · 233 阅读 · 0 评论 -
【数据结构】(四)散列(哈希)
哈希(hashing)又称散列,是实现散列表的技术。散列是一种用于以常数平均时间执行插入、删除和查找的技术,因此涉及到元素间排序信息的操作不会得到支持,如树的findMin、findMax以及按照顺序打印列表这些操作散列是不支持的。散列的基本思想散列是一个固定大小的数组,存储的是键值对(Key–Value),键一般是好操作的数据,值一般存储比较大的实际意义强的数据,键的存在是便于使用键进行数据...原创 2019-08-19 23:33:57 · 432 阅读 · 0 评论 -
【数据结构】(五)堆(优先队列):二叉堆、d堆、左式堆、斜堆与二项队列
堆(Heap)堆(Heap)又称为优先队列(priority queue),在队列的基础上,堆允许所有队列中的元素不一定按照先进先出(FIFO)的规则进行,而是使得每个元素有一定的优先级,优先级高的先出队列。这类数据结构属于计算机科学中最雅致的一种优先队列至少存在两个重要的操作:insert:插入,使得数据入队列,是一种有约束的enqueue操作deleteMin:删除最小项,找出...原创 2019-08-24 15:26:31 · 1054 阅读 · 0 评论