![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 65
qq_35510981
这个作者很懒,什么都没留下…
展开
-
树的相关知识
(1)二叉排序树的查找算法typedef struct Node{int data; //结点值struct Node *parent; //父结点struct Node *lchild; //左结点struct Node *rchild; //右结点}TREENODE;TREENODE *Search(TREENODE *root,int value){if(root!=NULL转载 2017-07-13 19:57:56 · 165 阅读 · 0 评论 -
滑动窗口的最大值——双端队列
题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5转载 2017-07-30 21:00:55 · 535 阅读 · 0 评论 -
森林转化为树
树或森林与二叉树之间有一个自然的一一对应关系。任何一个森林或一棵树可唯一地对应到一棵二叉树。反之,任何一棵二叉树也能唯一地对应到一个森林或一棵树。将森林转换为二叉树的一般步骤为: (1) 将森林中每棵子树转换成相应的二叉树,该二叉树只有左子树。形成有若干二叉树的森林 (2) 按森林图形中树的先后次序,依次将后边一棵二叉树作为前边一棵二叉树根结点的右子树,这样整个森林就生成了一棵二叉树,实际上第原创 2017-07-30 22:22:47 · 3888 阅读 · 0 评论 -
堆的相关知识
二叉堆的定义 二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。下图展示一个最小堆: 由于其它几种堆(二项式堆,斐波纳契堆等)用的较转载 2017-07-30 22:29:27 · 253 阅读 · 0 评论 -
图的相关知识
一、 相关概念 图的定义:图是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。 无向边:若顶点Vi 到Vj 的边没有方向,则称这条边为无向边,用无序偶对(Vi ,Vj)来表示。 如果图中任意两个顶点之间的边都是无向边,则称该图为无向图。 有向边:若从顶点Vi 到Vj的边有方向,则称这条边为有向边,也称转载 2017-07-23 21:26:01 · 418 阅读 · 1 评论 -
图的关键路径
关键路径的算法是建立在拓扑排序的基础之上的,这个算法中用到了拓扑排序,所以在这里先以拓扑排序开篇。1. 什么是拓扑排序? 举个例子先:一个软件专业的学生学习一系列的课程,其中一些课程必须再学完它的基础的先修课程才能开始。如:在《程序设计基础》和《离散数学》学完之前就不能开始学习《数据结构》。这些先决条件定义了课程之间的领先(优先)关系。这个关系可以用有向图更清楚地表示。图中顶点表示课程,有向转载 2017-07-23 22:06:52 · 5776 阅读 · 0 评论 -
哈希表的相关知识
什么是哈希表 哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。使用哈希查找有两个步骤: 1. 使用哈希函数将被查找的转载 2017-07-24 10:26:13 · 336 阅读 · 0 评论