数据结构与算法学习之红黑树B树基本概念B树(英语:B-tree)是一种自平衡多路搜索树,能够保持数据有序。这种资料结构能够让查找数据、顺序访问、插入数据及删除的动作,都在对数时间内完成; 与自平衡二叉查找树不同,B树适用于读写相对大的数据块的存储系统,例如磁盘。B树减少定位记...2022-07-06学习笔记
数据结构与算法学习之AVL树基本概念AVL 是最早发明的自平衡二叉搜索树之一,名称来源于 G. M. Adelson-Velsky 和 E. M. Landis (两位来自苏联的科学家); 平衡因子:某节点的左右子树的高度差; 而在 AVL 树中每个节点的平衡因子只能是 1,0...2022-06-27学习笔记
数据结构与算法学习之搜索二叉树思考如何在 n 个动态的整数中搜索某个整数?(检测其是否存在) Ⅰ. 考虑使用动态数组存放元素,从第 0 个位置开始遍历搜索,平均时间复杂度:O(n) 0 1 2 3 4 5 6 7 8 9 33 66 18 28 16 52 95 45...2022-06-16学习笔记
数据结构与算法学习之二叉树树介绍在计算机科学中,树(英语:tree)是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。 它是由 n(n>0)个有限节点组成一个具有层次关系的集合。它具有以下的特点: 每个节点都只有有限个...2022-06-14学习笔记
数据结构与算法学习之栈栈是一种线性表,栈与线性表的最大区别是数据的存取的操作,其插入和删除操作只允许在线性表的一端进行。 一般而言,把允许操作的一端称为栈顶(Top),不可操作的一端称为栈底(Bottom),同时把插入元素的操作称为入栈(Push),删除元素的操作称为出栈...2019-10-24学习笔记
数据结构与算法学习之队列队列,和栈一样,也是一种对数据的”存”和”取”有严格要求的线性存储结构。 与栈不同之处在于,队列只能在头尾两端进行操作: 队尾(rear):只能从队尾添加元素,一般叫做 enQueue, 入队; 队头(front):只能从队头移除元素,一般叫做 d...2019-10-24学习笔记
数据结构与算法学习之动态数组什么是数据结构数据结构是计算机存储、组织数据的方式,主要有以下几种: 线性结构:主要有数组链表,栈,队列和哈希表 树形结构:主要有二叉树,红黑树,B树,堆,Trie,哈夫曼树,并查集等 图形结构:邻接矩阵,邻接表 在实际开发应用中,需要根...2019-10-16学习笔记
数据结构与算法学习之链表链表动态数组有个明显的缺点,可能会造成内存空间的大量浪费;能否用到多少就申请多少内存?链表可以办到这一点。 链表是一种链式存储的线性表,所有元素的内存地址不一定是连续的: 链表的设计 在 LinkedList 类中,有成员变量 size 和指向头节...2019-10-16学习笔记
Leetcode 刷题记录之链表237. 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。 示例 : 输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:给定你...2019-10-16学习笔记
数据结构与算法学习之复杂度什么是算法算法就是用于解决特定问题的一系列的执行步骤,例如: 123456789101112// 计算 a + b 的值public static int plus(int a,int b) { return a + b;}...2019-10-15学习笔记