《数据结构》数据结构概况

《《数据结构》数据结构概况》 数据结构

一、数据结构

带有结构的数据元素的集合。一般包含以下三个方面:

1、逻辑结构

数据元素之间的逻辑(或抽象)关系。

2、存储结构

数据元素及其关系在计算机内的存储方式。

3、算法

数据的运算,几对数据元素施加的操作(行为)。

二、逻辑结构

1、线性结构

数据元素(结点)之间存在一对一的关系,且结构中仅有一个开始结点和一个终端结点,其余结点都是仅有一个直接前趋和一个直接后继。

2、非线性结构

数据元素之间存在一对多或者多对多的关系,即一个结点可能有多个直接前趋和多个直接后继。包括树形结构、图形结构和网状结构等。

  • 树形结构
  • 图形结构
  • 网状结构

三、存储结构

是数据在计算机中的存储表示(映像),亦称为数据的物理结构。由以下四种存储方法实现:

  • 顺序存储方法

逻辑上相邻的结点存储到物理位置上也相邻的连续存储单元中,由此可以得到顺序存储结构。程序设计语言中,相当于数组。该方法主要应用于线性的存储结构,当然,非线性的数据结构也可以通过某种线性化的方法来实现顺序存储。

  • 链接存储方法

链式存储方法是用一组不一定连续的存储单元存储逻辑上相邻的元素,元素间的逻辑关系是由附加的指针域表示的,程序设计语言中,相当于指针。

  • 索引存储方法

在存储元素信息的同时,会建立附加的索引表。表中的索引项,一般的形式是(关键字、地址)。关键字是能唯一标识一个元素的一个数据项或多个数据项的组合。

  • 散列存储方法

基本思想是根据元素的关键字直接计算出该元素的存储地址,通俗的理解为一种映射关系。

tips:对于存储方法的选择,主要考虑运算的方便及算法的时间和空间上的要求(时间复杂度,空间复杂度)。

算法

1、算法的基础概念

对数据元素施加的操作。

  • 检索
  • 插入
  • 删除
  • 更新
  • 排序

2、算法的作用
数据的运算是定义在数据的逻辑结构上的,每种逻辑结构都有一个运算的集合。因此,数据运算时数据结构不可分割的一方面。在给定了数据的逻辑结构和存储结构之后,按定义的运算集合以及运算性质的不同,可能导致完全不同的数据结构。例子:

  • 对线性表的插入、删除运算限制在表的一端进行,则该线性表成为栈。
  • 对线性表的插入运算限制在表的一端,删除的运算限制在另一端,则该线性表成为队列。

3、算法的描述

  • 输入

涉及变量的初始化,一个算法包括零个或多个数据。

  • 输出

至少一个或多个输出

  • 有穷性

算法中每条指令的执行次数都是有限的,每一步都在有穷的时间内完成,也就是算法必须在有限步后结束。

  • 确定性
    算法中每条指令的含义都必须明确,无二义性。

  • 可行性
    算法中描述的操作都可以通过有限次数的基本运算来实现。

4、算法的分析(待添加)

  • 时间复杂度
  • 空间复杂度
    原文作者:上发条的树
    原文地址: https://www.jianshu.com/p/44d0e8ca254a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞