18数据结构

# 一,数据结构概述

## 1.1什么是数据结构?

**官方解释:**

​        数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科

**大白话:**

​        数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据

## 1.2数据结构分类

传统上,我们可以把数据结构分为逻辑结构和物理结构两大类。

**逻辑结构分类:**

​        逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互关系分类,也是我们后面课题中需要关注和讨论的问题。

a,集合结构:结合结构中数据元素出了属于同一集合外,他们之间没有任何其他关系

 

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

 

c,树形结构:树形结构中的数据元素之间存在多对一的层次关系

 

d,图形结构:图形结构的数据元素是多对多的关系

 

**物理结构分类:**

​        逻辑结构在计算机中真正的表示方式(又称映像)称为物理结构,也可以叫做存储结构,常见的物理结构有顺序存储结构、链式存储结构。

``顺序存储结构``

​        把数据元素放到地址连续的内存单元里面,其数据间的逻辑关系和物理关系是一致的,比如我们常用的数组就是顺序存储结构。

 

​        顺序存储结构存在一定的弊端,就想生活中排队时,会有人插队也有可能有人突然离开,这时候整个结构都处于变化之中,此时就需要链式存储结构。

``链式存储结构``

​        是把数据元素存放在任意的存储单元里面,这组存储单元可以是连续的,也可以是不连续的。此时,数据元素之间的关系,并不能反映元素间的逻辑关系,因此链式存储中引进了一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。

 

## 1.3数据结构术语

**抽象数据类型:**(Abstract Data Type,简称ADT)是指一个数学模型以及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。

抽象数据类型和数据类型实质上是一个概念。例如,各个计算机都拥有的“整数”类型是一个抽象数据类型,尽管它们在不同处理器上实现的方法可以不同,但由于其定义的数学特性相同,在用户看来都是相同的。因此,“抽象”的意义在于数据类型的数学抽象特性。

数据结构的表示(存储结构)用类型定义( typedef)描述。数据元素类型约定为Data。

# 二,线性表

**线性结构的特点是:**在数据元素的非空有限集合中

+ 存在唯一的一个被称为"第一个"的数据元素
+ 存在唯一的一个被称为“最后一个”的数据元素
+ 除了第一个之外,结合中的每个数据元素均只有一个前驱
+ 除了最后一个之外,集合中每个数据元素均只有一个后继

线性表示一个相当灵活的数据结构,它的长度可以根据需要增长或缩短,即对线性表的数据元素不仅可以进行访问,还可以进行插入和删除等。

## 1.1顺序表

顺序表是指用一组地址连续的内存单元依次存储线性表的数据元素

通常都用数组来描述数据结构中的顺序存储结构。由于线性表的长度可变,且所需最大存储空间随问题不同而不同,则在C语言中可用动态内存分配一维数组,如下描述:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值