数据结构学习笔记(郝斌老师).pdf

数据结构学习笔记(郝斌老师).pdf

ID:48007986

大小:6.20 MB

页数:88页

时间:2020-01-12

数据结构学习笔记(郝斌老师).pdf_第1页
数据结构学习笔记(郝斌老师).pdf_第2页
数据结构学习笔记(郝斌老师).pdf_第3页
数据结构学习笔记(郝斌老师).pdf_第4页
数据结构学习笔记(郝斌老师).pdf_第5页
资源描述:

《数据结构学习笔记(郝斌老师).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学算法,不要想着自己能够完完整整的自己编一个算法,也不要觉得自己想不出来就备受打击。只要能看懂别人写的算法,然后反复地自己敲,反反复复地出错,然后再敲,最后实现能够把这个程序敲出来就行了。看懂主要分三步:1看懂主函数的流程;2明确每一个子函数的功能;3试数,就是自己往里面代数。总搞不懂,看不懂地算法,就把它背会,然后反复想,期待能够搞定(基本很少,但有)。数据结构研究的就是个体的存储和个体与个体之间关系的存储问题,算法研究的是对数据的操作问题,并且不同的存储结构会影响算法的使用,举个简单的例子,要想实现一个功能,你首先需要把数据

2、拿出来,对于数组来说用for循环就可以实现,但对于链表就不可以了,所以说算法依附于存储数据的结构,结构不同算法必定会有差异(控制线用来控制cpu对于内存条,是只读还是只写,还是可读或可写)两个指针变量之间只可以相减,不可以相加,相乘或相除,因为这样的运算无意义对于单个指针可以进行加法或者减法运算(自增,自减)“指向同一块连续空间的不同存储单元”这个要求存在,是因为不同类型的指针变量,相减无意义,例如,一个保存的是整型的地址,另一个保存的是实型的地址,相减干啥?指针就是地址,计算机里的地址值就是编号,所以可以说指针就是编号。Dou

3、ble类型变量占8个字节,一个字节占8位,意思是,一个字节可以存放8个0或者8个1。一个字节用一个地址表示(一个字节一个编号),那么double类型变量因为占8个字节,那么就会有8个地址,那么指针中究竟存放的是这8个字节中的哪个地址呢?解:对于变量来说,要用它的第一个字节的地址来表示整个变量的地址。在计算机中的地址总线中用32根线(即32位)来存储变量在内存中所占首字节的地址,意思是用四个字节来存储某变量首字节的地址。所有的指针变量占四个字节,这意味着,一个指针变量无论它指向的变量占多大的字节,它永远只占四个字节。所以,指针中究

4、竟存放的是这8个字节中的第一个字节的地址。据此,做下面这个题问两次输出的q相差多少?答:因为每个double类型变量占8个字节,一个字节用一个地址来表示,用一个变量中的首地址(即第一个字节的地址)来表示变量的地址。意味着两个double类型变量之间有8个地址值,所以两个地址值应该相差8;运行结果:第一个数据+8等于第二个数据。(16进制)指针与一维数组#includeintmain(void){inta[5];//a是数组名5是数组元素的个数元素就是变量a[0]--a[4]//inta[3][4];//3行4列

5、a[0][0]是第一个元素a[i][j]第i+1行j+1列intb[5];//a=b;//errora是常量printf("%#X",&a[0]);printf("%#X",a);return0;}/*在Vc++6.0中的输出结果是:--------------0X12FF6C0X12FF6CPressanykeytocontinue--------------总结:一维数组名一维数组名是个指针常量,常量意味着,其值不可以被改变它存放的是一维数组第一个元素的地址*/指针变量,变量,这两种变量的“变”,一定要好好理解,它的

6、变化范围是什么,变化对象是什么,一定要搞清楚。指针变量也是变量,它与变量的区别在于其存放的东西不一样,这就意味着变化的对象不一样;以及变化的范围不同。指针变量存放的是地址值(为什么要经常用字母p来表示一个指针变量,就是因为它里面存放的是地址值,是位置信息,英文单词position的首字母为p),地址值是变量在定义时计算机赋给变量的一个计算机识别的标识,它的值是计算机编好的一系列的编号。所以,指针变量的变化范围就是那些所有的地址值编号,一般来说就是以16进制表示的从0开始的一系列的数。指针的变量值是人赋予的那些数据,其变化范围就是

7、数学上所定义的那个范围。语法程序举例1:#includeintmain(void){int*p;//p是变量的名字,int*表示p变量存放的是int类型变量的地址inti=3;p=&i;//OK//p=i;//error,因为类型不一致,p只能存放int类型变量的地址,不能存放int类型变量的值//p=55;//error原因同上return0;}程序举例2#includeintmain(void){int*p;//p是变量的名字,int*表示p变量存放的是int类型变量的地址//int*p;

8、不表示定义了一个名字叫做*p的变量//int*p;应该这样理解:p是变量名,p变量的数据类型是int*类型//所谓int*类型实际就是存放int变量地址的类型inti=3;intj;p=&i;/*这句话写完就意味着:1.p保存了i的地址,因此p指向i2.p不是i

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

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

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