![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 79
zjc348
这个作者很懒,什么都没留下…
展开
-
递归,分治,回溯
递归模板func recursion(level int, param1, param2,...){ //recursion terminator 递归终止条件 if level > MAX_LEVEL{ process_result return } //process logic in current level 处理当前层逻辑 process(level, data...) //drill down 下探到下一层原创 2020-08-30 22:26:41 · 245 阅读 · 0 评论 -
二叉树的前中后序遍历及N叉树的前后序遍历
leetcode原题94. 二叉树的中序遍历给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]1\2/3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?递归比较简单,就略过了,直接上迭代代码,这里给出golang的代码/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode *原创 2020-08-24 16:52:05 · 594 阅读 · 0 评论 -
二叉树,哈希表,堆
二叉树简单地理解,满足以下两个条件的树就是二叉树:本身是有序树;树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 2;例如,图 1a) 就是一棵二叉树,而图 1b) 则不是。图 1 二叉树示意图二叉树的性质经过前人的总结,二叉树具有以下几个性质:二叉树中,第 i 层最多有 2i-1 个结点。如果二叉树的深度为 K,那么此二叉树最多有 2K-1 个结点。二叉树中,终端结点数(叶子结点数)为 n0,度为 2 的结点数为 n2,则 n0=n2+1。性质 3 的计算方法为:原创 2020-08-24 11:45:34 · 289 阅读 · 0 评论 -
常用数据结构及排序算法的复杂度分析
大O表达式 - Big O notationO(1)O(1)O(1): Constant Complexity 常量复杂度O(logn)O(logn)O(logn): Logarithmic Complexity 对数复杂度O(n)O(n)O(n): Linear Complexity 线性复杂度O(n2)O(n^2)O(n2): N Square Complexity 平方O(n3)O(n^3)O(n3): N Cubic Complexity 立方O(2n)O(2^n)O(2n): Exp原创 2020-08-24 10:31:12 · 119 阅读 · 0 评论 -
数组,链表,跳表
1. 数组,链表,跳表数组:在内存中开辟连续的内存地址,存储元素链表:当前Node对象存储当前节点值与下一节点内存地址调表:带有调表索引的链表,只能用于元素有序的情况下,用来取代平衡树二分查找左append右append查询插入删除数组O(1)O(1)O(1)O(n)O(n)普通链表O(1)O(1)O(n)O(1)O(1)调表O(1)O(1)O(log n)O(log n)O(log n)空间复杂度上,数组最少,普通链表第二原创 2020-08-24 10:29:11 · 135 阅读 · 0 评论 -
php数据结构运用(树)
树树是一种数据结构,它是由n个有限节点组成一个具有层次关系的集合树的特点:每个节点有零个或多个子节点没有父节点的节点称为根节点每一个非根节点有且只有一个父节点除了根节点外,每个子节点可以分为多个不相交的子树二叉树概念二叉树是树的特殊一种,具有如下特点:每个结点最多有两颗子树,结点的度最大为2左子树和右子树是有顺序的,次序不能颠倒即使某结点只有一个子树,也要区分左右子树二叉树是一种有用的折中方案,既有链表的好处,也有数组的好转载 2020-07-29 21:04:06 · 582 阅读 · 0 评论