数据结构
cscsmin
这个作者很懒,什么都没留下…
展开
-
数据结构 7并查集(DISJOINT SET)
不相交集ADT等价关系 若对于每一对元素(a,b),a,b∈S,aRb或者为true或者为false,则称集合S上定义关系R。如果aRb为true,那么我们说a与b有关系。 等价关系是满足下列三个性质的R: (1)自反性 对与所有的a∈S,aRa (2)对称性 aRb 当且仅当 bRa (3)传递性 若aRb 且 bRc 则 aRc 动态等价性问题如果有一个集合S,...原创 2018-03-16 16:43:00 · 737 阅读 · 0 评论 -
数据结构 5排序算法
排序算法插入排序(Insertion Sort)如果要向一组已经排好了序的数中,再插入一个数,可以从头开始遍历,直到找到相应的位置,插入即可。所以我们可以这样对一组数进行插入排序:进行N-1次 pass,在第P次pass,我们将位置P处的元素向前移动到相应的位置,前面P个元素一定是已经排好序的,后面的先不用管.(这就像将一个元素插入到一段已经排好序的数中)。例如P=1时,比较前P个元素(就是...原创 2018-11-17 22:54:24 · 312 阅读 · 0 评论 -
链表
链表我们定义每个节点的结构如下:struct Node{ int Element; struct Node* next;};每个节点都包含了元素和指向下一个结构的指针。通过这些指针可以将一个个节点串起来从而形成了一个链表。链表的插入操作在这里,我们想把temp节点插入在node节点的后面,temp->next = node->next; 先将temp的nex...原创 2018-11-24 17:02:27 · 231 阅读 · 0 评论 -
数据结构——栈
栈栈是一种先入先出的数据结构,插入和删除操作都只对最顶端的元素进行。栈最重要的是如下几个操作:Push( ElementType X, Stack S ); //将一个元素压入栈中ElementType Top( Stack S ); //返回栈顶的元素值Pop( Stack S ); //将栈顶的元素出栈其中,对一个空栈进行pop或pop操作,会引发数据结构栈的错误,...原创 2018-11-24 19:45:28 · 343 阅读 · 0 评论 -
数据结构 3优先队列(堆)
堆(Heaps)我们想要这样一种数据结构,他可以进行插入和删除,但删除的话,规定每次删除的都是所有元素中最小的那一个元素。这可以利用数组和链表实现,但最好的是利用二叉树实现。如果用二叉搜索树的话删除太麻烦了,下面介绍一种堆的数据结构。堆需要满足的性质结构性质引入完全二叉树的定义若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连...原创 2018-11-26 17:01:50 · 418 阅读 · 0 评论 -
数据结构 2树
树树的一些术语与性质树,是一个没有环路的无向联通图;根,我们将树中一个不同的顶点视为树的根;结点的度,结点的子数的数目,例如A的度为3,F的度为0;树的度,所有子树的度的最大值,例如上面树的度为3父亲,儿子,兄弟;A是B的父节点,B是A的子节点,BC是兄弟节点树叶:度为0的节点,例如上图树叶为K,L,F,G,M,I,J节点的深度:树根的深度为0,BCD的深度为1,G的深度为2节...原创 2018-11-27 22:20:31 · 343 阅读 · 0 评论