常见的数据结构
发布日期:2021-06-27 12:55:54
浏览次数:28
分类:技术文章
本文共 811 字,大约阅读时间需要 2 分钟。
文章目录
常见的数据结构
常用数据结构有栈、队列、数组、链表和红黑树。
栈
**栈(Stack):**又名堆栈。栈是限定从表尾进行插入和删除操作的线性表。即允许插入和删除的一端为栈顶,另一端则为栈底。不含任何元素的栈为空栈、
栈的特点: 先进后出,栈的入口、出口的都是栈的顶端位置
即先存入的元素后出(详细见下图)
队列
**队列(queue):**简称队,是一种特殊的线性表。在队尾插入元素,队头删除元素。空队列是不含元素的空表。
队列的特点:
- 先进先出
- 队列的入口、出口各占一侧
数组
**数组(Array):**有序的元素序列。数组是在内存中开辟一段连续的空间,在该空间中存放元素。
数组的特点:
- 查找元素快,通过索引可以快速访问指定位置的元素
- 增删元素慢 -指定索引位置增加元素: 需要创建一个新数组,将指定新元素存储在指定索引位置,再把原数组元素根据索引,复制到新数组对应索引的位置。 -指定索引位置删除元素: 需要创建一个新数组,将原数组元素根据索引,复制到新数组对应索引的位置,原数组中指定索引位置元素不复制到新数组中,即完成指定的删除操作
链表
链表(Linked List): 由一些列结点node(链表中的每一个元素为结点)组成,结点可以再运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。链表结构有单向链表与双向链表。
链表特点:- 查找元素慢,查找元素时,需要通过连接的节点,依次向后查找指定元素
- 增删元素快
红黑树
二叉树(binary tree): 是每个结点不超过2的有序树
关于红黑树的约束:
- 结点可以是红色或者黑色的
- 根节点必须是黑色的
- 叶子结点(特指空结点)是黑色的
- 每个红色节点的子节点都是黑色的
- 任何一个节点到其中每一个叶子节点的所有路径上黑色结点数相同
红黑树的特点: 速度特别快,趋近平衡树,查找叶子元素最少和最多次数不多于二倍
转载地址:https://blog.csdn.net/weixin_43454088/article/details/116333444 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月07日 20时14分04秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Alljoyn】 Alljoyn学习笔记六 Alljoyn基本概念
2019-04-26
【Alljoyn】 Alljoyn学习笔记七 Alljoyn瘦客户端库介绍
2019-04-26
【Android】Activity生命周期
2019-04-26
【Android】Activity的四种launchMode
2019-04-26
【Android】Activity的task相关
2019-04-26
【Android】 Intent应用详解
2019-04-26
【Android】 Intent详解
2019-04-26
【Android】 常用的Intent
2019-04-26
Android中AsyncTask的简单用法
2019-04-26
【Android】 Android中Log调试详解
2019-04-26
【Android】Android中WIFI开发总结(一)
2019-04-26
【Android】Android中WIFI开发总结(二)
2019-04-26
【Android】Android之WiFi开发应用示例
2019-04-26
【Android】 Android adb常见问题整理
2019-04-26
【Android】 Android体系结构图
2019-04-26
【Android】 Android中spinner下拉列表的使用
2019-04-26
说说在 python 中,如何删除左右两边不需要的字符
2019-04-26
说说如何管理 Spring Boot 中的起步依赖
2019-04-26
说说如何在 Linux 中,新建账号
2019-04-26
说说如何在 linux 中搭建 FTP 服务
2019-04-26