![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 81
崔雨田
这个作者很懒,什么都没留下…
展开
-
数据结构 之 双链表
双链表 双链表在单链表的基础上进行扩展,一个节点中包含三部分:数据、前一个节点的指针、后一个节点的指针。双链表可以提高单链表的综合性能。在一个双链表中要维护着 first 指针和 last 指针 以及 链表的大小。 节点设计 private static class Node<E> { E element; Node next; Node prev; public Node(E elements, Node prev,原创 2021-02-10 15:45:48 · 330 阅读 · 0 评论 -
数据结构 之 单链表
链表 动态数组是一种顺序存储元素的数据结构,其元素存放在一个连续的内存地址中,这样在查找的时候便可以直接根据首元素的地址 + 偏移量 来确定任何位置的元素。动态数组在查找的时候占据优势,但是在删除元素、指定位置添加元素的时候却要面临着移动元素的开销。 链表是一种链式存储元素的数据结构,其节点元素中存放了下一个元素的地址,这样的存储模型便完美解决了在删除和添加操作较多的场景下面使用动态数组而带来的额外开销。 单链表 单链表是最普通的链表,其每个节点由数据部分、下一个元素的指针组成,通过每个节点的next指针原创 2021-02-08 10:59:35 · 321 阅读 · 0 评论 -
数据结构之平衡二叉树、AVL树
AVL 树 二叉搜索树的性能问题 在二叉搜索树中的查找和删除操作的时间复杂度是 o(h)级别的,可见二叉搜索树的高度直接影响了二叉搜索树的使用性能,但是随着不断的添加和删除操作,二叉搜索树的左右子树高度可能会存在差距太大的情况,所以在删除和添加之后应该对二叉搜索树进行调整,使用最小的调整次数把二叉搜索树调整为左右子树高度相近。 二叉搜索树的问题 在添加、删除元素过程中二叉树可能会退化为链表,下面举例说明 添加 在添加元素的时候安装升序或者降序来添加元素。 删除 在对BST树元素删除的过程中原创 2021-02-07 22:13:14 · 109 阅读 · 0 评论 -
数据结构之 二叉搜索树、二叉排序树、BST树
二叉搜索树 BST 二叉搜索树简称BST树 二叉搜素树是二叉树的一种,数组这种数据结构也能够实现对元素的快速查找,但是对于元素的添加、删除和更新操作,使用数组来实现的话,就会存在较高的时间复杂度(O(n))级别。对于添加、删除、查找操作若是要保持较低的时间复杂度可以采用二叉搜索树来实现。 二叉搜索树又称二叉排序树,其节点之间按照一定的顺序进行排放可以极大地提高查找的效率,由于是树形结构,其在添加和删除操作上面的操作不像数组一样需要进行元素的复制。 建立一个BST树的过程,首先添加的是根部节点,然后新添加原创 2021-02-06 18:03:56 · 260 阅读 · 0 评论 -
java 数据结构之二叉堆
树的基本概念 节点的度: 这个节点子树的个数 树的度: 所有节点中度的最大值 叶子节点: 度为0的节点 非叶子节点: 度不是0的节点 节点的深度: 从根节点到当前节点唯一路径上的节点总数 节点的高度: 从当前节点到最远叶子节点的路径上的节点总数 树的深度: 所有节点深度的最大值 树的高度: 所有节点高度的最大值 树的深度等于树的高度 有序树 树中任意节点的子节点之间有顺序的关系 无序树 树中任意节点的子节点之间没有顺序关系 二叉树 每个节点度的最大值为 2 一个节点最多拥有2个子树 左子原创 2021-01-11 16:46:46 · 283 阅读 · 0 评论