1.数据结构

发布时间:2022-06-25 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了1.数据结构脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

数组

特点

  1. 查询快,因为内存地址是连续的,通过索引可以找到某个元素
  2. 增加、删除慢,因为长度是固定的,如果增加一个元素,就需要创建一个与新加元素的长度相同的数组,把原数组的内容添加进来。删的话与之相同

链表

单向链表

1.数据结构

双向链表

1.数据结构

特点

  1. 内存地址不连续
  2. 不支持下标搜索,支持顺序的遍历搜索
  3. 增加、删除操作找到对应节点改变链表的头尾指向即可,无需移动元素的节点位置

Demo

LinkedList

private static class Node<E> {
  E item; //节点的元素
  Node<E> next; //下一个节点
  Node<E> prev; //上一个节点

  Node(Node<E> prev, E element, Node<E> next) {
    this.item = element;
    this.next = next;
    this.prev = prev;
	}
}

二叉树

1.数据结构

  1. 某节点的左子树的值必须小于该节点的值
  2. 某节点的右子树的值必须大于该节点的值

不平衡二叉树

1.数据结构

特点

查询效率太低,如果我现在要查1,必须要查6次才能查到。下面的红黑树就是为了优化二叉树平衡的一种解决方案

红黑树

红黑树是一个自平衡(不是绝对的平衡)的二叉查找树

特点

  1. 每个节点要么是黑色,要么是红色
  2. 根节点都是黑色
  3. 每个叶子节点都是黑色
  4. 每个红色节点的两个字节点一定是黑色
  5. 任意一节点到每个叶子节点的路径中都包含相同的黑色节点

红黑树练习网站: http://algoanim.ide.sk/index.php?page=showanim&id=63

红黑树能自平衡,它靠的是什么?三种操作:左旋、右旋和变色

原理

  1. 左旋:以某个结点作为支点(旋转结点),其右子结点变为旋转结点的父结点,右子结点的左子结点变为旋转结点的右子结点,左子结点保持不变。
  2. 右旋:以某个结点作为支点(旋转结点),其左子结点变为旋转结点的父结点,左子结点的右子结点变为旋转结点的左子结点,右子结点保持不变。
  3. 变色:结点的颜色由红变黑或由黑变红。

1.数据结构

脚本宝典总结

以上是脚本宝典为你收集整理的1.数据结构全部内容,希望文章能够帮你解决1.数据结构所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: