自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张八斤的博客

八斤的进阶之路

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

原创 并查集基本操作及扩展

一.基本定义1.并查集是一种维护集合的数据结构,其名字中的并 查 集分别取自union(合并),find(查找),set(集合)。支持下面两个操作合并:合并两个集合。查找:判断两个元素是否在一个集合中。2.并查集的实现。int father[]。用一个father[]数组保存集合。其中father[2]=3意为元素2的父亲结点为元素3。多个元素属于同一个集合依据为具有相同的根节点。...

2018-10-23 21:50:54 332 2

原创 Tire树的基本应用

上一篇主要讲了Tire的基本操作与实现方法,接下来开始了解字典树的具体应用。1.phone list(判断一个字符串是不是另一个字符串的前缀)原题链接:http://poj.org/problem?id=3630DescriptionGiven a list of phone numbers, determine if it is consistent in the sense t...

2018-10-30 16:30:30 1356 1

原创 Trie字典树基本操作

一、定义      字典树,也称字母树,指的是某个字符串集合对应的有根树,树的每条边上恰好对应一个字符,每个顶点代表从根到该结点的路径所对应的字符串。Tire很好的利用了串的公共前缀,节省了存储空间。二、基本操作 1.初始化。一个空Tire树仅包含一个根结点,该结点的字符指针均为空。 2.插入数据。当需要插入一个字符串s时,令一个指针p起初指向根结点,然后,依次扫描s中的每个字符c...

2018-10-30 14:26:36 542

原创 堆的定义与堆排序

一、基本定义堆是一棵完全二叉树,树中每个结点的值都不小于(或不大于)其根节点的值。根据大小关系进行分类,将根结点不小于其左右孩子结点值的堆称为大顶堆。将根结点不大于其左右孩子结点值的堆称为小顶堆。堆一般用于优先队列的实现,优先队列默认使用大顶堆。二、堆的基本操作1、给定一个序列,如何建堆。根据初始序列,先从左到右,从上到下,建立一棵度为2的树。之后对树中各个结点进行调整,直到该树是大顶...

2018-10-26 20:29:58 845

原创 二叉树的遍历及相关操作

一、先序遍历(根左右),中序遍历(左根右),后序遍历(左右根)。只是根结点的遍历顺序发生变化,但左子树的遍历一定在右子树遍历之前进行。//先序遍历void preorder(node* root){ if(root==NULL)return; //递归边界。 printf("%d",root->data); //访问根结点。 preorde...

2018-10-25 09:57:57 188

原创 二叉树的基本定义

一、二叉树的递归定义1.要么二叉树没有根节点,是一颗空树。2.要么二叉树由根节点,左子树和右子树组成,且左子树和右子树都是二叉树。请注意二叉树与度为2的树的区别:对树来说,结点的子树是不区分左右顺序的。度为2的树只能说明树中所有结点的子结点个数不超过2。而二叉树其左右子树是严格区分的,不能随意交换左子树和右子树位置。二、二叉树的存储结构此处二叉树用链表来定义。(对链表不太熟悉的...

2018-10-24 21:27:33 222

空空如也

空空如也

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

TA关注的人

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