数据结构知识总结
文章平均质量分 89
Tianzez
稳健
展开
-
链表面试题——下
11.判断单链表是否带环?若带环,求环的长度?求环的入口点?并计算时间复杂度和空间复杂度①判断链表是否带环 思路:还是利用快慢指针法,快指针一次走两步,慢指针一次走一步。如果有环那么两者最后必然相遇,反之便是不带环。 思考:如果快指针一次走三步、四步或者k步(k>2),慢指针一次走一步,在带环的情况下他两最后能相遇吗? 当慢指针刚进入环时,快指针已经...原创 2017-12-29 15:41:36 · 448 阅读 · 0 评论 -
链表面试题——上
1.从尾到头打印单链表 思路:用两个指针来控制打印: ①tail先指向NULL,然后指针cur从头往后走,走到tail前一个位置,就是最后一个节点,打印这个节点。 ②tail往前走,tail指向链表最后一个节点,再让cur走到tail前一个位置,打印。 ………….void SListPrintTailToHead(SListNode* pHead) //从尾到头打印单链表{原创 2017-12-15 16:50:44 · 463 阅读 · 0 评论 -
二叉树面试题——上
1.创建一棵二叉树 思路:利用数组把二叉树用代码表示出来,例如创建下面这颗树:int a[] = { 1, 2, 3, '#', '#', 4, '#', '#', 5, 6, '#', '#', '#' }; 传参时把数组名、数组下标以及非法值传过去。invalid是‘#’的ascll码值,代表NULL,如果某节点的左右孩子都是‘#’,那他就是叶子。 创建使用的是原创 2018-01-11 15:34:13 · 572 阅读 · 0 评论 -
时间复杂度和空间复杂度计算+尾递归
一、时间复杂度 (1)定义: 时间复杂度实际就是一个函数,该函数计算的是执行基本操作的次数。 注意:时间复杂度表示的是次数而不是时间。 一个算法运算结果分三种情况: 最坏情况:任意输入规模的最大运行次数(上界)。 平均情况:任意输入规模的期望运行次数。 最好情况:任意输入规模的最小运行次数,通常最好情况不会出现(下界)。 而时间复杂度采原创 2017-12-07 16:19:10 · 1220 阅读 · 0 评论 -
算法解析之动态规划
转自:http://blog.csdn.net/u013445530/article/details/45645307什么是动态规划? 动态规划(Dynamic Programming,所以我们简称动态规划为DP)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程转载 2018-01-26 16:29:33 · 515 阅读 · 0 评论 -
二叉树面试题——下
13.二叉树的镜像 题目:请完成一个函数,输入一棵二叉树,该函数输出它的镜像。二叉树节点定义如下:typedef struct BinaryTreeNode{ struct BinaryTreeNode* _left; struct BinaryTreeNode* _right; BTSTDataType _data;}BTNode;< code...原创 2018-02-27 15:18:37 · 356 阅读 · 0 评论 -
海量数据处理问题
1. 布隆过滤器(Bloom Filter) Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。 它适用于判断元素是否存在集合当中,速率非常高。Bloom Filter有可能会出现错误判断,但不会漏掉判断。 Bloom Filter可以准确的判断出某个元素不在集合之中。但如果判断某个元素存在集合中,有一...原创 2018-03-04 15:53:43 · 314 阅读 · 0 评论 -
七大经典排序算法(C语言描述)
排序算法是算法中非常重要的部分,我们要做的不仅仅写出各种算法代码,更重要的是在解决实际问题时根据每种算法的时间复杂度、空间复杂度以及稳定性选出合适的算法。 PS:排序算法的稳定性 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是...原创 2018-03-11 18:26:43 · 1870 阅读 · 0 评论 -
二叉搜索树的基本操作
二叉搜索树(Binary Search Tree)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉搜索树树。节点设置:typedef int DataType;typedef struct BSTreeNode{ struct BSTre原创 2018-03-14 15:07:04 · 369 阅读 · 0 评论