每日一学之初始数据结构

图片来自于百度图片

概念

数据结构(data structure)是指相互之间存在一种或多种特定关系的数据元素的集合。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。

数据结构类别

集合、线性结构、树形结构和图状结构。我们经常听到的线性表、栈、队列属于线性结构,树和图属于非线性结构。

集合

此集合与Java中的概念不太相同,更加偏向于散列的概念。因为集合表示各个数据之间没有一定的联系。但是在List中的LinkedList确属于链表结构,可以看作一种线性数据。

集合结构图

线性结构

以LinkedList为例,上一条数据指向下一条数据,能够形成一个互为关系的线性图。

线性结构图

树形结构

我们常用的二叉树,红黑树等都属于属性结构

树形结构图

图状结构

图结构与线性结构以及树形结构的最大特点便是数据与数据之间的关联关系有简单的1对1,1对2演变为M对N的关系。

图状结构图

算法

与数据结构分不开的是算法,那么什么是算法?

算法是指令的结合,是为解决特定问题而规定的一些列操作,它是明确定义的可计算过程,是一个数据集合作为输入,并产生一个数据集合作为输入。

通过对算法从时间复杂度、空间复杂度等特性进行分析,从而帮助我们在实际的项目中选择合适的的数据结构及算法。

下期提要

下期开始我们将正式步入数据结构阶段,主要从线性表、堆栈、队列、树、图形等数据结构入手,并学会如何分析一个算法。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180208G069MN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券