什么是数据结构?
定义:是相互之间存在的一种或多种特定关系的数据元素的集合。
在提到数据结构我们同时不得不提出什么是数据?
数据:是对客观事物的符号表示,在计算机科学中是指所有输入到计算机中并被计算机是程序处理的符号的总称。
数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,一个数据元素可以由若干个数据项组成,数据项是数据元素中最小的单位。
数据对象是性质相同的数据元素的集合,是数据的一个子集。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
struct Student
{
char name[10];
char id[10];
char sex[5];
};
int main()
{
struct Student stu1;
strcpy(stu1.name, "张三");
strcpy(stu1.id, "11111");
strcpy(stu1.sex, "女");
printf("%s %s %s",stu1.name,stu1.id,stu1.sex);
}
在这里stu1就是一个数据对象,Student结构体里面name,id,sex是数据项。
结构:数据元素之间的关系
1.集合结构:数据中之间的元素不能重复。
2.线性结构:数据元素之间存在一个一对一的关系。特点:连续,一对一。
3.树形结构:数据元素之间存在以各多对多的关系。(家族谱)
4.图状或网状结构:结构中的数据元素之间存在多个对多个的关系。(地图)
存储结构(物理结构)
在计算机中我们不只是要存储数据,还要存储数据之间的逻辑关系。
数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像(顺序存储结构和链式存储结构)
顺序映像的特点是借助元素在存储其中相对位置来表示数据元素之间的逻辑关系。
非顺序映像特点:借助指示数据元素存储地址的指针表示数据元素之间的逻辑。
数据的逻辑结构和物理结构是密切相关的两个相关的两个方面,任何一个算法的设计取决于选定的数据逻辑结构,而算法的实现依赖于采用的存储结构。