数据结构概述

1、数据结构基本信息

数据结构 = 数据 + 结构。


理解数据,数据经常涉及:

——数据:描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合

——数据元素:组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录

——数据项:一个数据元素可以由若干个数据项组成;

——数据对象:性质相同的数据元素的集合,是数据的子集。

那以图书馆为例:

——数据:图书馆中所有的书;

——数据元素:某一本书;

——数据项:书的基本信息,such as 书名,出版日期,著者等;

——数据对象:某一类书。


理解结构,结构主要有:

——逻辑结构:数据对象中数据元素之间的关系。主要包括集合结构【其间元素同属一个集合,彼此之间无对应关系】,线性结构【一对一】,树形结构【一对多】,图形结构【多对多】;

——物理结构:数据的逻辑结构在计算机中的存储形式。顺序存储【数据元素存放于地址连续的存储单元】和链式存储【数据元素存放于任意的存储单元】。


因此,数据结构 = 数据 + 结构,即众多数据对象在计算机内存或磁盘中存储的形式及具体内容。

2、常见的数据结构 

数据对象中数据元素之间,


物理结构是顺序存储,逻辑结构是集合结构:

——数组【Array】:数据元素都具有数据项“索引”,用于定位索引所对应的数据元素。查询快,增删慢,因为在数组中删除/增加数据元素,对其他元素的索引均会产生影响;

——栈【Stack】:数据元素先进后出;

——队列【Queue】:数据元素先进先出;


物理结构可以是顺序存储也可以是链式存储,逻辑结构是集合结构:

——链表【Linked List】:链表中的数据元素也可称为节点,由数据元素域【包含数据元素地址及其中的数据项信息等】和指针域【指向下一个元素地址的指针】组成。常见的链表有单向链表,双向链表,循环链表;


物理结构是链式存储,逻辑结构是树形结构:

——树【Tree】:链表中的数据元素同链表一样也称为节点,也是由数据元素域和指针域组成,但不同于链表的是,树的指针域可以有多个。就像树,树根【根节点,root】只有一个,分裂出多条树枝,分裂出来的每一条树枝继续分裂出多条树枝【因此,每个节点可以有多个子节点,但只有一个父节点(一般称为前驱)】;

——堆【Heap】:特殊的树形结构。


物理结构是链式存储,逻辑结构是图形结构:

——图【Graph】:图与树的不同主要是,树只许有一个前驱节点,但是图可以有多个前驱节点。可以想象一个立方体的某一个顶点是一个节点,它可以延伸多条线指向多个节点,同时,也可以有多个节点指向这个节点。


特殊:

——散列表【Hash】:数据元素间以某种关系存在,关系可用函数表达式【散列函数】描述。

 

参考资料:

https://blog.csdn.net/u013164931/article/details/80189351

【参考原因】从根本问题出发,彻底理解数据结构与算法。

https://blog.csdn.net/qq_34044404/article/details/51850728

【参考原因】对数据结构总结全面

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值