1. 数据结构概念
1.1 数据结构相关概念
1.1.1 为什么要学习数据结构?
为什么要学习数据结构?在回答这个问题之前,我们应该弄清楚什么是数据结构,数据结构能够用来干什么?直白的,它能够帮我们解决什么问题?
数据结构是思想层面的,与具体的语言无关,可以用其他的语言去实现这些思想都没有问题
举个例子:
比如我们C语言中没有数组这个数据结构,那么如何实现10个数排序,是不是要定义10个变量,然后让10个变量互相比较,重复劳动,但是使用数组之后,是不是问题变得简单了,只需要通过数组下表就可以,提高了编程的编写效率
再比如说,我们有了数组,为什么还要学习链表这种数据结构?数组是连续内存空间,一旦定义了不能改变,适应性差,但是链表有多少数据,就创建多少个结点,而且比如说数据,删除中间位置一个元素,会引起后面数据的移动,但是链表不会,在有些场合下,使用链表是不是会增加程序的效率
可以得出数据结构的概念:数据结构就是帮我们解决如何组织和存储数据的方式
数据结构主要研究非数值计算问题的程序中的操作对象以及他们之间的关系,不是研究复杂的算法
数据结构是计算机存储、组织数据的方式
1.1.2 数据结构中的基本概念
数据:程序的操作对象
数据是一个抽象的概念,将其进行分类后得到的程序设计语言中的类型。如:int, float, char等等
数据元素:组成数据的基本单位
数据项:一个数据元素由若干个数据项组成
数据对象:性质相同的数据元素的集合(比如:数组、链表)
//声明一个结构体类型
struct _MyTeacher //一种数据类型
{
char name[32];
char tile[32];
int age;
char addr[128];
};
int main()
{
struct _MyTeacher t1; //数据元素
struct _MyTeacher tArray[30]; //数据对象
memset (&t1, 0, sizeof(t1));
strcpy(t1.name, "name")l //数据项