1 / 27
文档名称:

数据结构的总结.docx

格式:docx   大小:39KB   页数:27页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构的总结.docx

上传人:ogthpsa 2020/9/13 文件大小:39 KB

下载得到文件列表

数据结构的总结.docx

相关文档

文档介绍

文档介绍:数据与结构知识点总结数据结构概述 定义我们如何把现实中大量而复杂的问题以特定的数据类型(比如:结构体等)和特定的存储结构(比如:数组,链表等)保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如:查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法。数据结构=个体+个体的关系 算法=对存储数据的操作理解:如果数据都无法保存的话,如何对数据进行操作呢?这时候数据的存储是一个很关键的问题,那么我们就要通过特定的数据类型和特定的存储结构保存到内存中。那么问题来了: 问题1:保存一个省的人事之间的关系就不能用链表或数组来实现,因为那样不能得知哪个是老大老二,谁是领导和属下,所以它无法体现,那么怎么办呢? ——利用用树来实现,做一个人事管理系统问题2:如果是个交通图,开辟很多站点,那么我要在各站点间修路每个站点相同,或者说给出两个站点,系统能给出两站点间最短路径,那又该怎么办呢? ——利用图来实现,使各个点之间相关联发现:把一个实际的问题如何保存在计算机里面,这是第一步要解决的问题。如果数据都不能保存,那还怎么对它操作呢? 那么该如何保存呢?保存个体(特定的数据类型);保存个体和个体之间的关系(特定的存储结构)。算法:解题的方法和步骤 衡量算法的标准(前2条最关键) 1、时间复杂度:大概程序要执行的次数,而非执行的时间 2、空间复杂度:算法执行过程中大概所占用的最大内存 3、难易程度 4、健壮性:不能出现当给一个非法的数整个程序就挂了数据结构的地位: 数据结构是软件中最核心的课程,几乎所有的编程语言都能找到数据结构的影子 程序=数据的存储+数据的操作+可被计算机执行的语言预备知识 指针指针的重要性:C语言的灵魂定义地址: 内存单元的编号 从0开始的非负整数 范围:0—0FFFFFFFF【0-4G-1】指针: 指针就是地址,地址就是指针 指针变量是专门存放内存单元地址的变量 指针本质是一个操作受限的非负数分类: 1、基本类型的指针eg:#include<> intmain(void) { int*p;//p是个变量名字,int*表示p只能存放整形变量的地址 inti=10; intj; p=&i;//p指向i j=*p;//等价于j=i printf("i=%d,j=%d,*p=%d\n",i,j,*p);//10 return0; } eg:#include<> voidf(int*p)//int*是变量p的数据类型,形参的名字是p,而不是*p { *p=100; } intmain(void) { inti=9; f(&i);//实参必须为相关变量的地址 printf("i=%d\n",i);//100 return0; } 2、指针和数组的关系 eg:#include<> intmain(void) { inta[5]={1,2,3,4,5};//a==&a[0],它是常量值不能变 a[3]=*(a+3);//a[i]==*(a+i) printf("%p\n",a+1);//%p是输出地址 printf("%p\n",a+2); printf("%p\n",a+3); printf("%d\n",*a+3);//等价于a[0]+3 return0; }eg:#include<> voidShow_Array(int*p,intlen) { inti=0; p[0]=-1;//p[0]==*p;p[2]==*(p+2)==*(a+2)==a[2] //p[i]就是主函数的a[i] for(i=0;i<len;i++) { printf("%d\n",p[i]); } } intmain(void) { inta[5]={1,2,3,4,5}; Show_Array(a,5);//a等价于&a[0] printf("%d\n",a[0]);//-1 return0; }/*-12345-1*/ eg:#include<> intmain(void) { double*p,*q,x=; doublearr[3]={,,}; p=&x;//x占8个字节(8位),一个字节一个地址 q=&arr[0]; printf("%p\n",q);//%p实际就是一16进制输出 q=&arr[1]; printf("%p\n",q); return0; }//相差8个字节无论指针变量指向谁,它本身只占4个字节。结构体为什么会出现结构体? 为了表示一些复杂的数据,而普通的基本类型无法满足要求。什么叫结构体? 是用户根据实际需要自己定义的复合数据类型。如何使用结构体? eg:#include<>#incl