
算法与数据结构笔记
文章平均质量分 88
miaomiao328
这个作者很懒,什么都没留下…
展开
-
二叉树的遍历非递归
题目:给定一颗二叉树,如下图:要求:前序遍历输出结果:1 2 4 6 7 5 9 10 3 8中序遍历输出结果:6 4 7 2 9 5 10 1 3 8后序遍历输出结果:6 7 4 9 10 5 2 8 3 1结构如下:struct Node{Node(int val):_left(NULL),_right(NULL),_val(val)原创 2017-07-26 19:18:44 · 532 阅读 · 0 评论 -
合并两个有序链表
给出以下两个链表:要求:将两个合并为一个有序链表(合并完如上图所示)需要考虑的问题总结:合并之前我们需要考虑是否存在空链表(分三种情况)新链表的头(是哪个节点)合并中如果有一个已经为空(如下)代码如下:Node* List::MergeList(Node* Head1,Node* Head2){ if(Head1==NULL&&Head2==原创 2017-07-13 19:31:14 · 401 阅读 · 0 评论 -
二叉树面试题(一) 重建二叉树
问题描述:由前序遍历和中序遍历重建二叉树(前序序列:1 2 3 4 5 6 - 中序序列:3 2 4 1 6 5)数据不含重复值。题目分析如下:前序遍历序列1 2 3 4 5 6,前序遍历规则是根--左--右。中序遍历序列3 2 4 1 6 5,中序遍历规则是左--根--右1.由前序遍历可知根节点一定为第一个元素1,在原创 2016-12-03 11:43:36 · 575 阅读 · 0 评论 -
关于set和map
关于set,必须说明的是set关联式容器。set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一(防冗余),而且系统能根据元素的值自动进行排序。set集合容器它的底层是一个红黑树的平衡二叉检索树的数据结构。模版原型:template class Key, class Compare = less, cla原创 2016-11-13 13:10:03 · 521 阅读 · 0 评论 -
大数据处理问题
大数据,就是指种类多、流量大、容量大、价值高、处理和分析速度快的真实数据汇聚的产物。通常会需要考虑存储空间是、效率等问题。解决大数据问题一般主要的思想,1.文件切分,(将大文件切成若干个小文件进行处理),2.哈希切分,3.使用位图。以下通过几个实例来进行进一步分析:1、海量日志数据,提取出某日访问百度次数最多的那个IP。(或者:给一个超过100G的文件,文件中存放着iP原创 2016-11-09 22:15:58 · 1840 阅读 · 0 评论 -
哈希表(散列表)个人理解
哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的一种数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做哈希表或散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(原创 2016-11-04 20:58:21 · 1551 阅读 · 1 评论 -
部分复杂度问题
算法的时间复杂度:算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O表示法,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况。下面是部分时间复杂度对比:算法的空间复杂度:空间复杂度(SpaceComplexity)是对一个算法在运行过程中原创 2016-09-16 17:38:43 · 559 阅读 · 0 评论