数据结构的前篇理解

一. 数据结构
1.什么是数据结构
数据元素之间的逻辑结构,存储结构以及数据的抽象运算。并设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。

虽然知识这样的定义,但是对于它,现在还没有确切的定义。

2.基本概念和术语
数据:
数据指的是能输入到计算机中,并能被计算机程序处理的对象。
对于数值类型(整型、实型等),可以进行数值计算;
对于字符数据类型(声音、图像、视频等可通过编码转化为字符数据),可以进行非数值处理。

数据对象:
数据对象指性质相同的数据元素的集合,是数据的子集;

数据元素:
数据元素指组成数据的、有意义的基本单位,也被称为记录。

数据项:
数据项是有独立含义的、不可分割的最小单位。一个数据元素可以由若干数据项组成。

举个例子
在这里插入图片描述

这张表就是数据,可以输入到计算机中,能够被计算机程序处理。
人员表都是一个数据对象
每张表中的每一行就是数据元素
而姓名、性别、身高、籍贯、时间、课程这些就是数据项

3.逻辑结构和存储结构
逻辑结构:
数据元素之间的逻辑(或抽象)关系。
然而,数据的逻辑结构可以看看做是从具体问题抽象出来的数学模型

逻辑结构又分为两大种:线性结构以及非线性结构

线性结构:
数据元素(结点)之间存在着一对一的关系,就是对应前面只有一个节点(前趋),对应后面只有一个节点(后继)
它的结构也有很多种,比如:栈,队列,线性表…

非线性结构:
数据元素(结点)之间存在着一对多的关系,也有多对多的关系,对应前面可能有一个节点(前趋),也可能有多个,对应后面可能有一个节点(后继),也可能有多个。
它的结构也有很多种,比如:树,二叉树,图…

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

顺序存储:数据元素顺序存放,每个存储结点只含一个元素。存储位置反映数据元素间的逻辑关系。存储密度大。但有些操作(如插入、删除)效率较差。

链式存储:这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。

索引存储:除数据元素存储在一组地址连续的内存空间外,还需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标)。

散列存储:通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址。其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。

注意:同一种逻辑结构,采用不同存储方法可以得到不同的存储结构,选择何种存储结构来表示相应的逻辑结构,要视具体的应用系统要求而定,而主要考虑还是运算方便以及算法的时间和空间上的要求。

4.数据的运算
数据的运算是定义在数据的逻辑结构上的,数据的运算是数据结构不可分割的一方面。
最常见的运算有:检索,插入,删除,更新,排序…

数据类型:
它是数据结构密切相关的概念,一个值的集合以及定义在这个值集合上的一组操作(增删改查读写…)的总称。
数据类型有两种,是按照定义中“值的集合”来区分的。一、“值的集合”是数据结构,“数据结构”的集合和在该集合上的一组操作叫做结构类型。二、“值的集合”是基本的原子类型(int、double、char、byte、boolean、指针类型、空类型 …)再加上在该值集合上的操作就是原子类型。

数据类型和数据结构其实是所属关系。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值