数据结构及概念分析总结

作为计算机专业的人,如果出去跟别人说自己不懂数据结构,那就是天大的笑话了,数据结构+算法=程序设计,这是计算机届公认的理论了,无论我们在做项目时,还是参加各种比赛,乃至于我们参加工作招聘,数据结构都是至关重要的,有时你甚至可以不懂计算机语言,但是不能不懂数据结构,通过上次的华为面试,我发现自己在数据结构方面知识很是欠缺,于是决定全面复习一下数据结构,为了给自己的复习留下足迹,所以决定在博客上面做些记录,希望能够提高自己的学习效率。

数据结构,即Data Structure,是相互之间存在一种或多种特定关系的数据元素的集合,所谓的结构就是数据之间的相互关系,学习数据结构,我们要先明确几个有关的基本概念,如下:

数据:指客观事物的符号表示,是能输入计算机并被计算机程序处理的符号的总称。

数据元素:是数据的基本单位,通常作为一个整体进行考虑和处理。

数据项:数据元素有时可以划分为多个数据项,数据项是数据的最小单位,不可分割。

数据对象:性质相同的一组数据的集合。

数据结构一般可以分为以下四类:

线性结构:数据元素之间存在一对一的关系。

树形结构:数据元素之间存在一对多的关系。

图状结构:数据元素之间存在多对多的关系。

集合:数据元素之间除了同属于同一集合之外不存在别的相互关系。

根据数据结构的定义,我们通常用一个二元组来表示,即DS=(D,S);D表示数据,S表示数据之间的相互关系。

数据结构通常具有两种表示方式,一种是逻辑结构,另一种是物理结构,或称为存储结构,前者是数据结构的抽象描述,后者是数据结构在计算机中的存储表示,

数据结构的存储结构通常分为链式存储,顺序存储,散列存储和索引存储,链式存储即通过标识元素存储位置的指针来表示元素之间的相互关系,顺序结构即通过数据元素在计算机中的相对存储位置来描述数据元素之间的关系,散列存储方式为通过节点的关键字直接计算出节点的存储地址,索引存储结构则是通过索引表记录数据的存储位置,并间接表示数据的相互关系。

数据类型:一个值集和定义在该值集上的一组操作的集合。

抽象数据类型:解决现实问题通常需要将现实对象抽象为一个数学模型,一个数学模型和定义在该数学模型上的一组操作的集合称为抽象数据类型。

数据类型可以分为原子类型和结构类型,结构类型又可以分为固定聚合类型和可变聚合类型。

与数据结构关系最为密切的就是算法了,这里提一下算法的五个特性:

有穷性,即算法将在有限的时间和空间内运行结束。

确定性,即算法的每一步操作都必须具有明确的意义,不可出现二义性语句。

可行性,即算法的每一条语句都必须能够在当前计算机系统中得到有效的执行。

输入,即算法要有一个或多个输入。

输出,即算法要有一个或多个输出。

衡量算法优劣的标准通常有以下几个:正确性,可读性,健壮性,效率和低存储量需求。

算法的时间度量通常有事后统计法和事前分析估算法,前者需要耗费大量的时间和精力,而且容易是程序陷入茫然状态,即你无法判断程序是否执行出现错误,比如死循环,对于后者,通常采用大O表示法,即使用语句的最高频度来表示算法的执行时间,间接估算算法的时间需求。

算法的空间度量通常用变量空间,程序空间和辅助变量空间的总和来表示,在变量空间或程序空间为常量值时,可以忽略,当程序执行过程中其执行空间不变时,我们称之为原地执行。

数据结构的基本概念知识大概就这么多了,由于个人凭记忆书写,所以有所纰漏或则错误欢迎指出,在此表示感谢。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值