数据结构的简单理解

概念

数据结构是指数据元素的集合(或数据对象)及元素间的相互关系和构造方法.元素之间的相互关系是数据的逻辑结构,数据元素及元素之间关系的存储形式称为存储结构(物理结构)。数据结构=逻辑结构+物理结构

数据结构和算法

算法与数据结构密切相关,数据结构式算法设计的基础,合理设计的数据结构可使算法简单而高效.所以,作为程序员,数据结构是写好算法的基础.

分类

逻辑结构

线性结构与非线性结构的区别从上图可以看出,线性结构(线性表)又可分为一维数组、队列和栈;非线性结构又可分为树(二叉树、线索树、排序二叉树、完全二叉树、哈弗曼树)多维数组等。仔细观察线性结构和非线性结构的数据很容易发现他们之间的不同处在于“前驱和后继的个数”。线性结构:除最后元素之外,其它数据元素均有唯一的后继除第一元素之外,其它数据元素均有唯一的前驱;非线性结构是只有一个前驱和多个后继(树结构)多个前驱和多个后继(图结构)。这是二者之间最主要的差别。

物理结构

顺序存储结构:要求在计算机中用一组地址连续的存储单元来依次存储数据,这样的数据存储结构要求每个物理单元相邻。

优点:节省存储空间,分配给数据的存储单元全用存放节点的数据,节点之间的逻辑关系没有占用额外的存储空间。采用顺序存储可实现对节点的随机存取。即每一个节点对应一个序号,由该序号可以直接计算出来节点的存储地址。LOCai=LOCa1)+(i-1)*L

缺点:不便于修改,对结点的插入、删除运算,需要移动大量的结点。

链式存储结构:在计算机中用一组任意的存储单元存储线性表的数据元素,存储单元可以是连续的,也可以是不连续的。链式存储结构又分为单链存储、双链存储和循环链存储

优点:逻辑上相邻的结点物理上不必相邻;插入、删除灵活(不必移动结点,只需要修改节点中的指针)

缺点:查找结点时链式存储要比顺序存储慢;存储密度较小(每个节点都由数据域和指针域组成,所以相同空间内假设全存满的话顺序比链式存储多)

索引存储结构:是用结点的索引号来确定结点存储地址。就像一本书中的目录,这个目录就相当索引存储结构附加的索引表,根据目录我们可以很方便的找到具体的页数。在文件系统中也存在这样的一种文件索引存储方式。

优点:检索速度快

缺点:增加了额外的索引表,占用一部分存储空间

散列存储结构:根据结点的值确定它的存储地址,散列存储过程中需要处理冲突问题。

优点:检索、增加和删除结点的操作速度快

缺点:可能出现单元冲突而需要增加时间和空间开销

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值