




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
郝斌数据结构自学笔记-知识程序源代码2015.12 By-HZM1_什么是数据结构数据结构概述定义我们如何将现实中的大量复杂问题保存到具有特定数据类型和特定存储结构的主存(内存)中,并在此基础上执行相应的操作来实现某些功能(如查找某些元素、删除某些元素以及对所有元素进行排序),这种相应的操作也称为算法。数据结构=个人的存储个人的关系存储算法=对存储数据的操作2_测量算法的标准算法解决问题的方法和步骤测量算法的标准1)时间复杂度:程序执行的大概次数,而不是执行的时间2)空间复杂度:算法在执行过程中占用的最大内存3)难度4)鲁棒性3_数据结构的特征数据结构的状态数据结构是软件的核心课程程序=计算机可以执行数据存储操作的语言4_初步知识_指针_15_初步知识_指针_2指针的重要性:指针是C语言的灵魂定义:地址:地址是存储单元的数量,从0开始的非负整数,范围从0-ffffff 0-4g-1CPU=地址线、控制线、数据线=存储器指针:指针就是地址,地址就是指针。指针变量是存储存储单元地址的变量。指针的本质是一个有限运算的非负整数。分类:1.基本类型指针2.指针和数组之间的关系变量不一定连续分配;内存是随机分配的。内存:内存是由多个字节组成的线性一维存储空间。内存的基本分区单位是字节。每个字节包含8位,每个位包含1 0或1 1。记忆和数字一一对应。软件需要在运行前向操作系统申请存储空间。在软件运行期间,软件占用的空间不再分配给其他软件。软件运行后,操作系统将回收内存空间(操作系统不会清空内存空间中剩余的数据)。注:1)指针变量也是变量,不能以*开头,通常以亮号和表达式开头。2)局部变量仅在该函数中使用。如何通过被调函数来修改主调函数中普通变量的值。1)参数是相关变量的地址;2)形式参数是以变量的类型为类型的指针变量;3)在调制函数中,主函数可以以*参数变量名的形式修改。案例1#包括int main(空)int * p;/p是变量名,int*表示p变量只能存储int类型变量的地址int i=10int j;/j=* p;/printf(“% d n”,j);/错误,未指定p/char ch=A;/p=ch;/错误,类型不一致p=I;/p保存I的地址,p指向I;修改P值不影响I值,修改I值不影响P值;无论如何,*p和我可以交换。*p等于I。/p=10;/错误j=* p;/相当于j=I;printf(i=%d,j=%d,*p=%dn ,I,j,* p);返回0;案例2#包括Void f(int* i)/没有定义名为* i的形式参数,而是定义名为I的形式参数,其类型为int* i=100int main(空)int I=9;f;/局部变量只在这个函数内部使用。printf(i=%dn ,I);指针和数字数组名:一维数组名是一个指针变量,它存储一维数组第一个元素的地址。它的值不能更改。一维数组名是指数组的第一个元素。案例1a3=*(3a);3a=*(a3)=*(3a);5=1,2,3,4,5 ;Show_Aarry(a,5);/a相当于0,而0本身属于int*类型空显示阵列(整数倍,整数倍)国际;/2=-1;/p0=* p;p2=*(p2)=*(a2)=a2;是的主要功能。对于(I=0;ip 1 p -=P-16_所有指针变量只占用4个子部分。第一个字节的地址用于表示整个变量的地址。案例1双* p;双x=66.6/双精度占用8个字节p=x;/x占用8字节,1字节是8位,1字节是一个地址,只有一个地址存储在p中,通常是字节的第一个地址双重逮捕3=1.1,2.2,3.3 ;双* q;q=arr0;printf(%pn ,q);/%p实际上是以十六进制输出的q=arr1;q=printf(%pn ,q);/p,q相差8不管指针指向的变量占用了多少字节,指针变量只均匀地占用4个字节。7_如何通过函数修改自变量的值发送地址CASE 1修改指针变量的值,只有地址可以修改。void f(int * *);int main(空)int I=9;int * p=I;/*p。p=I;printf(%pn ,p);f(p);printf(%pn ,p);返回0;/void f(int *q)/q=(int *)0x ffffffff;/错误,不会改变p的值/void f(int * q)* q=(int *)0x ffffffff;8_结构的使用概述结构为什么结构会出现:为了表示一些复杂的数据,常用的基本类型变量不能满足要求。什么是结构?结构是用户根据实际需要定义的复合数据类型。如何使用结构:两条路struct Student st= 1000, zhagnsan ,20 ;结构学生* pst=st1)通过结构变量名来实现st.sid2)通过指向结构变量的指针实现键pst-sidSid,pst指向的结构变量的成员案例1#包括#包括结构学生int sidchar name200;国际年龄;/分号无法保存Int main(空)struct Student st= 1000, zhagnsan ,20 ;printf(%d,%s%dn,st.sid,,ST . age);printf(%d,%s%dn,ST);/错误st.sid=99/第一个/ST . name= Lisi ;/错误strcpy(, Lisi );st.age=22结构学生* pstpst=st。/第二种PST-sid=99;/pst-相当于(*pst)。sid,而(*pst)。sid相当于st.sid,因此pst-sid相当于st.sid。返回0;注意:结构变量不能加、减、乘或除,但可以相互分配。公共结构变量和结构指针变量作为函数参数的问题案例2#包括结构学生int sidchar name200;国际年龄;空f(结构学生* PST);学生街;空g2(结构学生* PST);int main(空)学生街;/内存已分配给stf(ST);/g(ST);G2(ST);/printf(%d %s %dn ,st.sid,,ST . age);/输出方法1返回0;空g(结构学生st)/全局变量赋值/输出方法2,速度慢,空间消耗,内存消耗,不推荐printf(%d %s %dn ,st.sid,,ST . age);空g2(结构学生*pst)printf(%d %s %dn ,pst-sid,pst-name,PST-age);空f(结构学生*pst)(*pst)。sid=99strcpy(pst-name,“zhagnan”);PST-年龄=22岁;9_malloc()动态内存分配概述动态内存的分配和释放案例1#icclude#包括int main(空)5=1,2,3,4,5 ;/静态数组内部透镜;Printf(“请输入需要分配的数组长度:len=”);scanf(%d ,len);int * ParR=(int *)malloc(sizeof(int)* len);/(int *)是强制转换,强制pArr指向前四个字节。PArr可以作为数组名来操作/* ParR=4;/类似于0=4;/ParR1=10;/类似于1=10;/printf(%d %dn ,*pArr,ParR1);/我们可以将pArr用作普通数组对于(int I=0;iint f();int main(空)int i=10I=f();printf(i=%dn ,I);对于(I=0;i2000(I)f );返回0;int f()int j=20返回j;案例2main()int * p;资金(p);.int fun (int *q)int s;/s是一个局部变量。在调用之后,没有S,最后P不指向合法的整数单位。* q=s;案例3main()int * p;资金(p);.int fun(int *q)* q=(int *)malloc(4);/返回4个字节,只有第一个字节的地址被分配给*q,* q=p。执行后,因为没有空闲(),内存不释放。如果没有free(),整个程序只能在完全终止后才能发布。程序中的类定义方法新的。A *pa=(A*)malloc(大小为(A);案例4#包括#包括结构学生int sid国际年龄;结构学生*创建学习(空);无效显示学生(结构学生*);int main(空)结构学生* psPS=CreateStudent();show student(PS);返回0;结构学生*创建学习(空)结构学生*P=(结构学生*)malloc(大小(结构学生);p-sid=99;p-年龄=88岁;返回p;无效显示学生(结构学生*pst)printf(%d %dn ,pst-sid,PST-age);11_评论1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年企业可持续发展目标(SDGs)与教育质量提升报告
- 2025年农业与食品行业绿色农业发展研究报告
- 2025年农业物联网精准种植技术智能化管理研究报告001
- 2025年农业生物技术在种业中的分子育种技术进展报告
- 放血治疗法讲课件
- 构建个性化学习路径的教育游戏化方案
- 湖南电气职业技术学院《现代汉语A》2023-2024学年第二学期期末试卷
- 技术更新下教育培训市场的新变化与应对策略分析
- 内科手术后续治疗方案讲课件
- 重庆工业职业技术学院《专业英语写作基础》2023-2024学年第二学期期末试卷
- 2025年湖北省高考地理试卷真题(含答案解析)
- 2025年重庆市中考历史真题(解析版)
- 2025年四川省成都市中考语文真题(原卷版)
- 2025山东“才聚齐鲁成就未来”水发集团高校毕业招聘241人笔试参考题库附带答案详解
- 2025中考数学押题预测 (广西卷)(试卷+答案详解)
- GB/T 45355-2025无压埋地排污、排水用聚乙烯(PE)管道系统
- DB32-T 186-2015建筑消防设施检测技术规程
- 国家开放大学《Photoshop图像处理》章节测试题参考答案
- DZ∕T 0214-2020 矿产地质勘查规范 铜、铅、锌、银、镍、钼(正式版)
- 机动车交通事故责任纠纷民事起诉状(模板)
- 马工程版《中国经济史》各章思考题答题要点及详解
评论
0/150
提交评论