郝斌自学数据结构大纲笔记pdf高清免下载券.pdf

郝斌自学数据结构大纲笔记pdf高清免下载券.pdf

ID:50223292

大小:1.57 MB

页数:54页

时间:2020-03-13

郝斌自学数据结构大纲笔记pdf高清免下载券.pdf_第1页
郝斌自学数据结构大纲笔记pdf高清免下载券.pdf_第2页
郝斌自学数据结构大纲笔记pdf高清免下载券.pdf_第3页
郝斌自学数据结构大纲笔记pdf高清免下载券.pdf_第4页
郝斌自学数据结构大纲笔记pdf高清免下载券.pdf_第5页
资源描述:

《郝斌自学数据结构大纲笔记pdf高清免下载券.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构概述(教材选用严蔚敏、吴伟民,该书程序是伪算法具体的程序是高一凡,西电的,大牛,只有程序。还有一本书,台湾的黄国瑜自己写的只有思路,程序是另外一个合作的清华的写的,可惜很多错的。)学完数据结构之后会对面向过程的函数有一个更深的了解定义我们如何把现实中大量而复杂的问题以特定的数据类型(单个数据怎样存储?)和特定的存储结构(个体的关系)保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法。(比如班里有15个人,其信息量也许一个数组就搞定了,但是假如10000个,怎么办?

2、内存也许没有这么多连续的空间,所以我们改用链表,yousee这就是与存储有关系。又比如,人事管理系统的信息存储,因为存在着上下级的关系,所以数组和链表就无能为力了,这时候我们用树,再比如我们做的是交通图,站和站之间肯定要连通,这时候以上的存储方式又无能为力了,所以我们又有了图。图就是每个结点都可以和其他结点产生联系。所以当我们要解决问题时,首先要解决的是如何把这些问题转换成数据,先保存到我们的主存中,)数据结构=个体+个体的关系算法=对存储数据的操作算法解题的方法和步骤衡量算法的标准1、时间复杂度大概程序要执行的次数,而非执行的时间。2、空间复杂度算法执行过程中大概所

3、占用的最大内存3、难易程度(主要是应用方面看重)4、健壮性(不能别人给一个非法的输入就挂掉)数据结构的地位数据结构是软件中最核心的课程程序=数据的存储+数据的操作+可以被计算机执行的语言(已经提供)(学完数据结构,想用一种语言去实现它,必须有指针,数据结构java版,就胡扯,变味,因为我们要讲链表,就是通过指针链在一起的。比如在java中Aaa=newA();本质上,aa是个地址)预备知识指针指针的重要性:(内存是可以被CPU直接访问的,硬盘不行主要靠地址总线,数据总线,控制总线。)指针是C语言的灵魂定义地址地址就是内存单元的编号从0开始的非负整数范围:0--FFFF

4、FFFF[0-4G-1](地址线是32位,刚好控制2的32次)指针:指针就是地址地址就是指针指针变量是存放内存单元地址的变量指针的本质是一个操作受限的非负整数(不能加乘除,只能减)分类:1、基本类型的指针2、指针和数组的关系结构体(C++中用类也能实现)为什么会出现结构体为了表示一些复杂的数据,而普通的基本类型变量无法满足要求什么叫结构体结构体是用户根据实际需要自己定义的复合数据类型#include#include#includestructStudent{intsid;charname[200];intage;

5、};intmain(void){structStudentst={1000,"zhangsan",20};printf("%d,%s,%d",st.sid,st.name,st.age);st.age=25;st.sid=100000;strcpy(st.name,"list");printf("%d,%s,%d",st.sid,st.name,st.age);return0;}如何使用结构体两种方式:structStudentst={1000,"zhangsan",20}structStudent*pst=&st;//structStudent*pst;ps

6、t=&st1.st.sid2.pst->sid//pst所指向的结构体变量中的sid这个成员注意事项:结构体变量不能加减乘除,但可以相互赋值普通结构体变量和结构体指针变量作为函数参数的传递(病毒就是靠访问正在运行的那些程序所占用的内存。Java中规定局部变量必须初始化,因为这些变量一开始都是垃圾值,但是属性不是必须初始化的,因为已经默认初始化为0)动态内存分配和释放(动态分配的内存一定要手动释放,否则造成内存泄露。)#include#includeintmain(void){intlen;printf("请输入您需要分配数组的个数

7、!");scanf("%d",&len);int*pArr=(int*)malloc(sizeof(int)*len);*pArr=4;pArr[1]=5;printf("%d,%d",*pArr,pArr[1]);free(pArr);return0;}(java中Aaa=newA();其实就是A*p=(A*)malloc(sizeof(A)))模块一:线性结构【把所有的结点用一根直线穿起来】连续存储【数组】1、什么叫做数组元素类型相同,大小相等(数组传参,只要传进去首地址和长度就行)2、数组的优缺点:优点:存取速度快缺点:事先必须知道数组的长

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。