- 博客(4)
- 资源 (1)
- 收藏
- 关注
原创 图的邻接矩阵表示法&邻接表表示法
图表示是一种多对多的关系的数据结构。因为线性表表示的是一种一对一的关系的数据结构,树表示的是一种一对多的数据结构,所以图把线性表和树都包含在内。图由一个非空的有限顶点集合和一个有限边集合组成。当我们描述图的时候,一定要包含以下两个元素:1、一组顶点:例如用Vertex表示顶点的集合。2、一组边:用Edge表示边的集合,一条边是一组顶点对。 •无向边 :(i,j)∈Edge,i,j∈Ver...
2018-06-25 20:28:23 9163
原创 并查集:按秩归并&路径压缩
集合可以怎么表示?可以用一棵树来表示,结点表示集合的元素,而树根则用来代表这个集合。所以用树来做集合的并查集的话,对于查找某个元素属于哪个集合,我们就从这个结点开始往上找,找到它所在的这棵树的根结点。对于并集操作,只要把两棵树的根结点并在一起就可以了。所以为了满足这样的操作,我们的树结构有点小改变,变为双亲表示法:“由孩子指向双亲。每个结点都向上指向它的父结点,而不是由父结点向下指向左右子树。”这...
2018-06-18 20:07:07 1117
原创 哈夫曼树&哈夫曼编码
哈夫曼树也是最优二叉树,首先我们来看哈夫曼树的定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。先再解释一下什么是带权路径的长度:设二叉树有n个叶子结点,每个叶子结点带有权值Wn,从根结点到每个叶子结点的长度,则每个叶子结点的带权路径长度之和就是WPL=。举个例子来说明下哈夫曼树要到底是要解决什么样的问题:比如对成绩...
2018-06-11 20:38:38 2332
原创 二叉搜索树:堆:最大堆的建立,插入和删除
前面我们讲到栈和队列的时候,这两种数据结构都是按时间的先后顺序来排列,如栈是按先进后出(FILO),后入先出的原则排列。而队列是按先进先出(FIFO)的原则排序。但有时候按这种时间原则的数据结构不能满足用户的一些需求,例如CPU需要执行程序的优先级别,很多时候不能靠时间顺序,有些程序重要性更高的时候,应该优先被调用,所以应该用一种按优先级高低来排列的数据结构,数据结构中的每一个对象都有各自的优先级...
2018-06-04 20:41:52 2278
调用ACLLib库+MVC设计模式的单人版贪吃蛇小游戏(C语言实现)
2018-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人