常见数据结构详解。栈(stack)、队列、数组、链表、红黑树

栈stack

  • 特点:又称为堆栈,入口和出口在同一侧。即先进去的后边才能拿出来。
    - 取出下面的元素要先拿出排在它之前的元素才行。
    -且进行查询,增加,删除都在同一侧进行操作。所以栈(stack)结构

2.队列queue

特点,先进先出。因为他是有一个入口和出口,先进去的先出来。stack的出口和入口是同一个。
例如–进入队列:123、那么出队列时:任然是 123 符合先进后出
栈stack:进栈:123 出栈:321 符合先进后出

3.数组Array

特点:查询快(有索引),增删慢
···查询快:因为数组的地址是连续的、有索引。所以可以通过它的索引快速的进行查找
···增删慢: 数组的增删操作,需要复制一个新的数组来辅助操作。例如:要删除原数组的一个元素,则先新创建一个数组,长度为当前数组长度-1
其次把当前数组的的元素,根据索引复制到新的数组中对应的位置。
之后再将原数组的地址值赋值给新数组,最后对原数组进行销毁(回收处理)。
【注:】{所以说增删很麻烦,要在堆内存中频繁的(新建,复制、销毁)数组、所以数组的增删慢}

4.链表 Linked list

特点:增删快,查询慢

查询慢:因为链表中的地址不是连续的,且没有索引。所以每次进行查询元素都必须是从头元素进行遍历。所以效率低下,查询慢

增删快:因为链表结构在增加删除元素时,对链表的整体结构是没有影响的。

【单向链表】
链表的每一个元素也被称为一个节点:
节点的结构:如下是。单向链表是无序的。
每个节点豆包括这三部分:
自己的地址 数据 下一个节点的地址

【双向链表】:
在单向链表的基础上又多了一条链接,即双向链表中有两条链接。其中多出来的一条用来记录元素的顺序。所以说双向链表是一个有序的集合。
其次双向链表可以连城一圈。即尾元素的下一个节点地址指向首元素的自身地址。

5.红黑树

红黑树接近于平衡二叉树
特点趋近于平衡二叉树
查询速度非常快
查询叶子节点的 最大次数和最小次数不能超过2倍

约束:节点可以是红色或者黑色
··根节点必须是黑色的
··叶子节点(空节点)是黑色的
··每个红色节点的子节点都是黑色的
··任何一个节点到其每一个叶子节点的所有路径上,黑色节点的数量是相等的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值