自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hulk

愚公移山

  • 博客(9)
  • 收藏
  • 关注

原创 平衡树(三)自顶向下2-3-4树与红黑树

定义:一棵2-3-4搜索树是一棵或者为空,或者由以下三类节点组成的树:2-节点,具有一个关键字,一个指向带有较小关键字的一棵树的左链接,一个指向带有较大关键字的一棵树的右链接。3-节点,具有两个关键字,一个指向带有较小关键字的一棵树的左链接,一个指向带有该节点两个关键字定义区间之间的关键字值的一棵树的中链接以及一个指向带有较大关键字的一棵树的右链接。4-节点,具有三个关键字和四个链接,对于该节点的...

2018-06-18 21:13:15 669

原创 平衡树(一)伸展BST

思想:通过执行两次旋转操作,把节点从作为根的孙子节点之一的位置带到树的顶部。首先,执行一次旋转,将该节点成为根的一个孩子节点。接着,执行另一次旋转,使它成为根。根据从根到插入节点的两个链接是否已相同方式定向,存在4种不同的情况:左--左:从根处右旋转两次。左--右:在左孩子进行左旋转,然后在根进行右旋转。右--右:在根处左旋转两次。右--左:在右孩子进行右旋转,然后在根进行左旋转。程序:void ...

2018-06-13 21:02:08 166

原创 平衡树(一)随机化BST

思想:当我们把一个新节点插入的N个节点的树中时,新节点出现在树根的概率是1/(N+1),因而我们就随机决定用这个概率进行根插入。否则,我们递归的使用下述方法插入新纪录:如果该记录的关键字小于树根的关键字,就把记录插入到左子树中;如果该记录的关键字小于树根的关键字,就把该记录插入到右子树中。程序实现:link insertR(link h,Item item)//item 插入树 h { ...

2018-06-13 20:10:52 571

原创 优先队列与堆排序(二)

堆排序

2018-06-12 20:29:29 122

原创 优先队列与堆排序(一)

优先队列:优先队列时一种数据结构,其数据项中带有关键字,支持两种基本操作:向优先队列中插入一个新的数据项;删除优先队列中的关键字最大的数据项;优先队列数组实现:将记录存储在一个无序数组中,从数组的末尾插入和删除数据项。static Item *pq;static int N;void PQinit(int maxN){ pq = malloc(maxN * sizeof(It...

2018-06-11 20:24:16 298

原创 递归与树(三)

图的遍历:深度优先搜索从任意节点开始,访问v。(递归的)访问每一个依附于v的(未访问过的)节点。如果图是连通的,我们最终可以到达所有的节点。深度优先搜索递归实现:要访问图中与节点k相连的所有节点,我们将它标记为访问过的,然后递归的访问k的邻接表中所有未访问过的节点。void traverse(link k,void (*visit)(int)){    link t;    (*visit)(k)...

2018-06-07 21:21:23 176

原创 递归与树(二)

函数:typedef struct node *link;struct node{ Item item; link l; link r;} 定义:任意两个节点只有一条唯一的路径。 如果在几对节点中不止一条的路径,或者在几对节点中没有路径,则为图。 二叉数性质: 根节点在第0层。 一棵有N个内部节点的二叉树有N+1个外...

2018-06-07 20:26:50 199

原创 递归与树(一)

递归递归算法就是通过解决同一问题的一个或多个更小的实例来最终解决一个大问题的算法。递归函数就是能调用自身的函数。递归算法是递归定义的函数。递归的深度就是计算过程中嵌套函数调用的最大程度。递归函数满足下面两个基本属性:1.必须明确的解决归纳基础。2.每一次递归调用,必须包括更小的参数值。递归举例:链表求逆void traverseR(link h,void(*visit)(link)){ ...

2018-06-05 20:12:28 531

原创 抽象数据类型ADT(栈与队列)

抽象数据类型 abstract data type,ADT:指只通过接口进行访问的数据类型,我们将那些使用ADT的程序叫做客户,将那些确定数据类型的程序叫做实现。数据的表示和实现操作函数都在接口的实现里面,和客户完全分离。接口对于我们来说是不透明的:客户不能通过接口看到方法的实现。优点:将编程时对数据的概念转换从任何特定的数据表示和算法实现中分离出来。使用抽象机制可以让我们关心程序如何实现的细节上...

2018-06-04 19:38:28 3537 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除