数据结构概述
定义
- 定义:我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法。
-
数据结构 = 个体的存储 + 个体的关系存储
-
算法 = 对存储数据的操作
-
算法:解题的方法和步骤
-
衡量算法的标准:
1.时间复杂度(大概程序要执行的次数,而非执行的时间 )
2.空间复杂度(算法执行过程中大概所占用的最大内存)
3.难易程度
4.健壮性 -
数据结构的地位:数据结构是软件中最核心的课程
-
程序 = 数据的存储 + 数据的操作 + 可以被计算机执行的语言
预备知识
- 指针
- 结构体
- 动态内存的分配和释放
指针
-
指针的重要性:指针是c语言的灵魂
-
地址:内存单元的编号
从0开始的非负整数
范围: 0 -- FFFFFFFF[0 -- 4G-1] -
指针:指针就是地址 地址就是指针
-
指针变量是存放内存单元地址的变量
-
指针的本质是一个操作受限的非负整数
#include <stdio.h>
void Show_Array(int *p, int len)
{
//p[i]就是主函数的a[i] //p[0] == *p p[2] == *(p+2) == *(a+2) == a[2]
int i = 0;
for(i = 0; i < len; ++i)
printf("%d
",p[i]);
}
int main(void)
{
int a[5] = {1,2,3,4,5};
Show_Array(a, 5); //a 等价于&a[0], &a[0]本身就是int *类型
return 0;
}
2020/04/04