04·数据结构

一、数据结构定义

计算机存储与组织数据的方式,一种或多种特定关系的数据元素的集合。

二、数据结构的作用

提升程序的运行效率,节省系统内存资源。不同的数据结构有不同的应用场景。

三、常见的数据结构

数组(array)

连续存储,线性结构,方便查找,方便修改(o(1))

不方便插入,不方便删除(o(n))

特点:

  • 在内存中开辟一块连续的空间
  • 一个数组可以拆分为多个数组,多个数组也可以合并为一个数组
  • 通常情况下,一个数组中的每个元素都是同一个类型的,这也决定了数组的类型
  • 数组可以是一维、二维、多维

链表(linkedlist)

在物理上非连续、非顺序的数据结构,是由若干个节点组成的

单链表

每个节点包含两个部分,分别是当前节点的数据下一个节点的指针

双链表

每个节点包含三个部分,分别是上一个节点的指针当前节点的数据下一个节点的指针

循环链表

拥有双链表的基本特点,并且最后一个节点的下一个指针指向的是第一个元素,第一个元素的上一个指针指向的是最后一个元素

特点:

  • 不需要初始化容量,可以任意添加和删除元素
  • 查询效率低,插入和删除效率高,因为每个元素都要存储其它节点的指针,因此占用空间大

堆栈(stack)

是一种线性结构,先进后出

支持两个基本操作:

  • push用于将元素压入栈
  • pop用于删除栈顶元素

跟数组的区别是:

数组取出元素时,数组中的数据还在;

从栈顶取出元素时,是直接将元素吐出来,栈中不再存储该元素

队列(queue)

是一种线性结构,先进先出,只允许在一端进行插入,在另一端进行取出,队列中没有元素时,称之为空队列

哈希表(hash)

又称散列表,根据键值(k/v)进行直接存储或访问的数据结构

优点

  • 对于一些大数据多数据,哈希表处理起来比较轻松
  • 能够快速的进行增删改查等操作
  • 代码简单

缺点

  • 在哈希函数处理某些元素的时候,不免出现下标重复相同的情况,这种情况可以称作为冲突
  • 哈希表中的数据都是没有顺序的

二叉树(tree)

每个节点至多有两个子节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值