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

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构学习笔记(郝斌老师)

学算法,不要想着自己能够完完整整的自己编一个算法,也不要觉得自己想不出来就备 受打击。 只要能看懂别人写的算法,然后反复地自己敲,反反复复地出错,然后再敲,最后实现 能够把这个程序敲出来就行了。 看懂主要分三步:1 看懂主函数的流程;2 明确每一个子函数的功能;3 试数,就是自 己往里面代数。 总搞不懂,看不懂地算法,就把它背会,然后反复想,期待能够搞定(基本很少,但有)。 数据结构研究的就是个体的存储和个体与个体之间关系的存储问题,算法研究的是对数据的 操作问题,并且不同的存储结构会影响算法的使用,举个简单的例子,要想实现一个功能, 你首先需要把数据拿出来,对于数组来说用for 循环就可以实现,但对于链表就不可以了, 所 以 说 算 法 依 附 于 存 储 数 据 的 结 构 , 结 构 不 同 算 法 必 定 会 有 差 异 (控制线用来控制cpu 对于内存条,是只读还是只写,还是可读或可写) 两个指针变量之间只可以相减,不可以相加,相乘或相除,因为这样的运算无意义 对于单个指针可以进行加法或者减法运算 (自增,自减) “指向同一块连续空间的不同存储单元”这个要求存在,是因为不同类型的指针变量,相 减无意义,例如,一个保存的是整型的地址,另一个保存的是实型的地址,相减干啥? 指针就是地址,计算机里的地址值就是编号,所以可以说指针就是编号。 Double 类型变量占8 个字节,一个字节占8 位,意思是,一个字节可以存放8 个0 或 者8 个1。 一个字节用一个地址表示 (一个字节一个编号),那么double 类型变量因为占8 个字 节,那么就会有8 个地址,那么指针中究竟存放的是这8 个字节中的哪个地址呢? 解: 对于变量来说,要用它的第一个字节的地址来表示整个变量的地址。在计算机中的地 址总线中用32 根线 (即32 位)来存储变量在内存中所占首字节的地址,意思是用四个字节 来存储某变量首字节的地址。 所有的指针变量占四个字节,这意味着,一个指针变量无论它指向的变量占多大的字节, 它永远只占四个字节。 所以,指针中究竟存放的是这8 个字节中的第一个字节的地址。 据此,做下面这个题 问两次输出的q 相差多少? 答:因为每个double 类型变量占8 个字节,一个字节用一个地址来表示,用一个变量中的 首地址 (即第一个字节的地址)来表示变量的地址。意味着两个double 类型变量之间有8 个地址值,所以两个地址值应该相差8; 运行结果:第一个数据+8 等于第二个数据。 (16 进制) 指针与一维数组 # include stdio.h int main(void) { int a[5]; //a 是数组名 5 是数组元素的个数 元素就是变量 a[0] -- a[4] // int a[3][4]; //3 行4 列 a[0][0]是第一个元素 a[i][j]第i+1 行j+1 列 int b[5]; //a = b;//error a 是常量 printf(%#X\n, a[0]); printf(%#X\n, a); return 0; } /* 在Vc++6.0 中的输出结果是: 0X12FF6C 0X12FF6C Press any key to continue 总结: 一维数组名 一维数组名是个指针常量,常量意味着,其值不可以被改变 它存放的是一维数组第一个元素的地址 */ 指针变量,变量,这两种变量的“变”,一定要好好理解,它的变化范围是什么,变化 对象是什么,一定要搞清楚。 指针变量也是变量,它与变量的区别在于其存放的东西不一样,这就意味着变化的对象 不一样;以及变化的范围不同。 指针变量存放的是地址值(为什么要经常用字母p 来表示一个指针变量,就是因为它里 面存放的是地址值,是位置信息,英文单词position 的首字母为p),地址值是变量在定义 时计算机赋给变量的一个计算机识别的标识,它的值是计算机编好的一系列的编号。所以, 指针变量的变化范围就是那些所有的地址值编号,一般来说就是以16 进制表示的从0 开始 的

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档