数据结构-绪论

数据结构在计算机中扮演着很重要的角色,程序的建立之初便是为了解决生活中的复杂化的问题,而在计算机科学中,程序就是数据结构+算法。算法在此不产生讨论,数据结构的出现,便是为将生活的信息存储到计算机中。

  例如:学生的信息,成绩,学龄这些信息表示在计算机中呢,于是我们创造了表。

     公司中各个模块的负责人,上下级的建立关系如何表示呢,于是我们创造了树。

     如今,网状结构越来越适用于先如今的生活,而如何在计算机中表示呢,于是我们创造了图。

     。。。。。。

数据结构的基本概念:此处不再冗余,难点在于抽象数据结构。

 

数据结构的三个要素

一、数据的逻辑结构

指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后间关系,而与他们在计算机中的存储位置无关。逻辑结构包括:

1、集合:数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;

2、线性结构:数据结构中的元素存在一对一的相互关系;

3、树形结构:数据结构中的元素存在一对多的相互关系;

4、图形结构:数据结构中的元素存在多对多的相互关系。

 二、数据的存储结构

指的是数据结构在计算机中的表示,也称为物理结构,又称映像。它包括数据元素的表示和关系的表示。数据存储结构依赖于计算机语言,它是用计算机语言实现的逻辑结构。数据的线性存储结构主要有:顺序存储、链式存储、索引存储、散列存储。

  1. 顺序存储:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元里,元素之间的关系由存储单元之间的位置关系,即相邻关系来体现。如顺序表。
    • 优点:容易实现随机存取,每个元素占用最少的存储空间。
    • 缺点:只能使用相邻的一整块存储空间,容易产生较多的外部内存碎片。
  2. 链式存储:使用表示元素存储地址的指针来表示元素之间的逻辑关系,此时不要求逻辑上相邻的数据元素在物理位置上也相邻。如单链表。
    • 优点:不会出现碎片内存,能充分利用存储单元。
    • 缺点:每个元素由于存储指针而占用额外的存储空间,且只能通过遍历实现顺序存取。
  3. 索引存储:在存储数据元素的同时,建立一个附加的索引表。索引表中的每一项称为索引项项,其形式通常为(关键字,地址)。
    • 优点:检索速度快。
    • 缺点:附加的索引表会占用额外的存储空间。在添加或者删除数据元素时,需要同步修改索引表,因此会花费额外的时间。
  4. 散列存储:根据元素的关键字以某种方式计算出该元素的存储地址,又称为 hash 存储。如哈希表。
    • 优点:检索、添加、删除的操作速度都很快。
    • 如果散列函数(或者 hash 函数)设计不好的话,可能会出现 hash 冲突,解决冲突又会增加时间和空间开销。

而数据的非线性存储结构主要有:树形存储、图形存储。

 

三、数据的运算

数据的运算主要体现为运算的定义,以及运算的实现。

运算的定义是针对数据逻辑结构的,它描述了运算所能实现的功能。

运算的实现是针对数据存储结构的,它描述了运算的具体操作过程。

 

  

posted @ 2021-02-20 15:57  啥子都不会  阅读(221)  评论(0)    收藏  举报