数据结构(1)数据结构的概念和定义
2016-03-10 21:18
381 查看
【参考资料:《数据结构》(C语言版)】
本人实现主要以C++语言实现。
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
对计算机而言,数据的含义广泛,包括图像、声音等都可以通过编码而归之于数据的范畴
有时,一个数据元素可由若干个数据项组成。
根据数据元素之间关系的不同特性,分为下列四类基本结构:
1、集合 结构中的数据元素之间除了”同属于一个集合“的关系外,别无其他关系
2、线性结构 结构中的数据元素之间存在一个对一个的关系
3、树形结构 结构中的数据元素之间存在一个对多个的关系
4、图状结构或者网状结构 结构中的数据元素之间存在多个对多个的关系。
数据结构的形式定义:
Data_Structure=(D,R)
其中:D是数据元素的有限集,S是D上关系的有限集
(集合、线性结构、树形结构、图形结构)
数据的物理结构是数据结构在计算机中的表示(又称映像),它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。
数据元素的机内表示(映像方法): 用二进制位(bit)的位串表示数据元素。通常称这种位串为节点(node)或元素(element)。当数据元素有若干个数据项组成时,位串中与个数据项对应的子位串称为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)。
关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构:顺序存储结构和链式存储结构。
顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。
因为对数据结构是仔细研究,对于定义了解就好,所以不继续深入探究。
本人实现主要以C++语言实现。
数据结构定义
简单来说,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
先导概念
数据
对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。对计算机而言,数据的含义广泛,包括图像、声音等都可以通过编码而归之于数据的范畴
数据元素
数据的基本单位,在计算机程序中通常作为一个整体来进行考虑和处理。有时,一个数据元素可由若干个数据项组成。
数据对象
数据对象是性质相同的数据元素的集合,是数据的一个子集。名词定义
数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。根据数据元素之间关系的不同特性,分为下列四类基本结构:
1、集合 结构中的数据元素之间除了”同属于一个集合“的关系外,别无其他关系
2、线性结构 结构中的数据元素之间存在一个对一个的关系
3、树形结构 结构中的数据元素之间存在一个对多个的关系
4、图状结构或者网状结构 结构中的数据元素之间存在多个对多个的关系。
数据结构的形式定义:
Data_Structure=(D,R)
其中:D是数据元素的有限集,S是D上关系的有限集
逻辑结构与物理结构
逻辑结构
数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。(集合、线性结构、树形结构、图形结构)
物理结构
数据的物理结构:指数据的逻辑结构在计算机存储空间的存放形式数据的物理结构是数据结构在计算机中的表示(又称映像),它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。
数据元素的机内表示(映像方法): 用二进制位(bit)的位串表示数据元素。通常称这种位串为节点(node)或元素(element)。当数据元素有若干个数据项组成时,位串中与个数据项对应的子位串称为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)。
关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构:顺序存储结构和链式存储结构。
顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。
因为对数据结构是仔细研究,对于定义了解就好,所以不继续深入探究。
相关文章推荐
- 数据结构与算法面试题80道(12)
- 数据结构与算法面试题80道(11)
- 坐标轴上从左到右依次的点为a[0]、a[1]、a[2]……a[n-1],设一根木棒的长度为L,求L最多能覆盖坐标轴的几个点?
- 坐标轴上从左到右依次的点为a[0]、a[1]、a[2]……a[n-1],设一根木棒的长度为L,求L最多能覆盖坐标轴的几个点?
- 递归练习 uva 10305
- #include<stdio.h>是什么意思啊!
- 哪两个数据结构,同时具有较高的查找和删除性能
- 几种常用排序算法的复习
- 数据结构与算法面试题80道(10)
- 数据结构与算法面试题80道(9)
- 递归算法思想&&一些简单算法实现
- java数据结构 拓扑排序
- java数据结构 广搜,队列,循环队列
- java数据结构 深搜+栈
- 字符串数组逆序
- 数据结构与算法面试题80道(7)
- 常用数据结构以及算法的简单介绍
- 小蚂蚁学习数据结构(36)——插入排序中的希尔排序
- 数据结构与算法(c语言) 学习笔记——第三章练习
- 数据结构之链表操作