- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
郝斌数据结构自学笔记
知识点 程序源代码
-- +
1_什么叫做数据结构
数据结构概述
定义
我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器
(内存)中,以及在此基础上为实现某个功能 (比如查找某个元素,删除某个元素,对所有元
素进行排序)而执行的相应操作,这个相应的操作也叫算法。
数据结构=个体的存储+个体的关系存储
算法=对存储数据的操作
2_衡量算法的标准
算法
解题的方法和步骤
衡量算法的标准
1)时间复杂度:大概程序执行的次数,而非执行的时间
2)空间复杂度:算法执行过程中大概所占用的最大内存
3)难易程度
4)健壮性
3_数据结构的特点
数据结构的地位
数据结构是软件中最核心的课程
程序=数据的存储+数据的操作+可以被计算机执行的语言
4_预备知识_指针_1
5_预备知识_指针_2
指针的重要性:
指针是C 语言的灵魂
定义:
地址:
地址是内存单元的编号,从0 开始的非负整数,范围:0-FFFFFFFF 【0-4G-1】
CPU=====地址线,控制线,数据线=====内存
指针:
指针就是地址,地址就是指针。
指针变量是存放内存单元地址的变量。
指针的本质是一个操作受限的非负整数。
1/ 56
分类:
1.基本类型的指针
2.指针和数组的关系
变量并不一定连续分配,随机分配内存。
内存:
内存是多字节组成的线性一维存储空间。
内存的基本划分单位是字节。
每个字节含有8 位,每一位存放1 个0 或1 个1.
内存和编号是一一对应的。
软件在运行前需要向操作系统申请存储空间。在软件运行期间,该软件所占空间不再分配
给其他软件。当软件运行完毕后,操作系统将回收该内存空间 (操作系统并不清空该内存空间
中遗留下来的数据)。
NOTE:1)指针变量也是变量,普通变量前不能加*,常亮和表达式前不能加。
2)局部变量只在本函数内部使用。
如何通过被调函数修改主调函数中普通变量的值。
1)实参为相关变量的地址;
2)形参为以该变量的类型为类型的指针变量;
3)在被调函数中通过 *形参变量名的形式 的形式就可以修改主函数。
CASE 1
#includestdio.h
int main(void)
{
int *p; //p 是个变量名字,int*表示该p 变量只能存储int 类型变量的地址
int i=10;
int j;
// j=*p;
// printf(%d\n,j);//error,p 未指定
// char ch=A;
// p=ch; //error,类型不一致
p=i; //p 保存i 的地址,p 指向i;修改p 的值不影响i 的值,修改i 的值不影响p 的值;
任何场合下,*p 和i 可以互换。*p 等价于i。
//p=10; //error
j=*p;//等价于j=i;
printf(i=%d,j=%d,*p=%d\n,i,j,*p);
2/ 56
return 0;
}
CASE 2
#includestdio.h
void f(int * i)//不是定义了一个名字叫做*i 的形参,而是定义了一个形参,该形参名字叫做i,它
的类型是int*
{
*i=100;
}
int main(void)
{
int i=9;
f(i); //局部变量只在本函数内部使用。
printf(i=%d\n,i);
}
指针和数字
数组名:一维数组名是个指针变量,它存放的是一维数组第一个元素的地址,它的值不能被改
变,一维数组名指向的是数组的第一个元素。
CASE 1
a[3]==*(3+a); 3[a] ==*(a+3)==*(3+a);
int a[5]={1,2,3,4,5};
Show_Aarry(a,5);//a 等价于a[0],a[0]本身就是int*类型
void Show_Array(int * p,int len)
文档评论(0)