数据结构-简述,白话版


一下内容为个人理解,非专业出身,所以描述的不专业,比较偏向大白话。

为什么要用数据结构

日常当中很多信息,大家在处理信息的时候都会不自觉的使用一些数据结构思想。查字典就是一种,按照ABCD的顺序去初步定位到自己要查的字在哪个范围,然后在逐一去看,最终找到自己想要的字。还有在网购的时候,都有一些筛选条件,比如你要哪个品牌的,多大尺寸的,什么价位的等等。用了采用数据结构思想,可以节约查找时间,加快增删效率,总体目的就是提高工作效率。

什么是数据结构

数据结构,一个是数据,一个是结构。数据就是各种各样的信息,然后这些信息相互关联,构建出来的效果就是结构。

都有哪些数据结构

既然是程序员,应该听过数组结构,单向链表结构,双向链表结构,散列表结构等等。这些结构中的数据,只取出一个,不叫数据结构,单个的就是一个一个的数据,但是这些数据相互之间有关系,组合到一起就是各种各样不同的数据结构。
数组就是索引连续的,一个挨着一个的,物理地址连续的。
单向链表就想单行道,只能从一个方向往另一个方向查询。
双向链表就是双行到,可以往两个方向查询。
散列表在HashMap集合里面有详细讲解。
还有红黑树结构等

逻辑结构和物理结构

逻辑结构,就是说这些数据之间存在这逻辑关系,形成的逻辑结构。比如集合结构,线性结构,树状结构,图形结构等等。
物理结构,是说这些数据在存储的时候是什么结构。
比如数组就是物理地址连续存储的,有序的。
链表结构就是物理地址不连续的,也是有序的。
散列表是既有物理地址连续的部分,也有物理地址不连续的部分,它是无序的。

数据结构分类

大概就是一下几类,如果都掌握了,工作中基本都能满足了
线性表:零个或多个数据元素的有序序列。例如ArrayList,LinkedList。
队列:只允许在一段插入,另一端删除操作的线性表。例如Handler消息队列。
堆栈:栈是限定在表尾插入和删除操作的线性表。例如Android中管理Activity的任务栈。
树:树是n个节点的有序集,节点可以想树一样,越向叶子节点,就没有交集。例如HashMap集合中如果单向链表超过8个就会变成树结构。
图论:有顶点的又穷空集合,和顶点之间边的集合组成。

排序和查找算法:排序是对数据进行顺序排列,查找是在大量数据中寻找我们需要的数据的过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值