欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    郝斌数据结构笔记.docx

    • 资源ID:689973       资源大小:92.08KB        全文页数:56页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    郝斌数据结构笔记.docx

    郝斌一一数据结构数据结构概述(I)定义:我们如何把现实中大量而复杂的问题已特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此根底上位实现某个功能二执行的相应操作,这个相应的操作也叫算法。解释:数据结构要解决的问题就是把现实中大量复杂的问题存储到内存中,把单个数据的类型确定,再把数据之间关系确定,这样就可以存储到内存中去了,算法就是对数据结构的操作。比方数组是一个数据结构,单个数据类型就确定,数据之间关系就是连续存储,操作数组就是一个算法。侠义的算法是依附于某个数据结构上,也就是说同样对数组遍历和对链表遍历,算法肯定不一样。数据结构解决存储问题,算法解决数据间的关系。数据结构=个体+个体的关系算法=对存储数据的操作。狭义的算法算法:解题的方法和步骤(2)衡量算法的标准:1时间复杂度大概程序要执行的次数,而非执行的时间:运行步骤最多的最关最核心的要运行的次数可以大概代表2空间复杂度:算法执行过程中大概所占有的最大内存。3难易程度4健壮性前两个最重要(一般算法有循环)(3)第三个内容:数据结构的地位(数据结构是软件中最核心的课程)数据库和数据结构的区别:数据库是数据结构的简化版程序:数据的存储+数据段操作+可以被计算机之行的语言(4)预备知识:伪算法不是真正的算法通过语言来实现伪算法,希望编程语言实现要通过指针。链表的知识很重要,以后都会用到。C+的指针不够,学C语言的用途是为了以后能看懂更高级的语言*p就代表一个变量,例如i。ini*p表示定义一个存放整形变量的地址的指针变量。程序运行完,内存就终止了。复习:I:指针:im*pp是个变量名字,用来存放地址,只能存储int型变量的地址指针的重要性:是C语言的灵魂,定义地址线cpuiA内存O控制线1OOOO数据线地址内存单元的编号(CPU只能访问内存,不能访问硬盘)从。开始的非负整数,范围为04g-1指针就是地址,地址就是指针指针变量是存放内存单元地址的变量指针和指针变量不一样指正的本质是一个操作受限的非负整数分类:Int*p;Int*j;Inti=10;P=&1;(1).把i的地址赋给i,*p就指向了I(2).P和i没有任何的关系(3)*p就是iP=IOZZerrorI=*jerror1根木类型的指针(P=&i表示指针变量存储i的地址,但是P为p,i为i两者无任何关系,但是*p和i却是等效的两者可以互换)变量不进行初始化,会是一个随机数的原因。2:指针结构体3:动态内存的分配和释放。4:内存的根本单位是字节5:&为取地址符号6:# include<stdio.h>voidf(int*p)(*p=100)intmain()(inti=9;f(&i)printf("i=%dn,i);return0I如何实现被掉函数修改主调函数中普通变量的值1:实参为相关变量的地址1&i)2:形参为以该变量的类型Iinl型)为类型的指针变量(指针变量P)3:在被调函数中通过*形参变量名的方式就可以修改主函数中普通变量的值(*p和i可以等效替换两者无任何区别)指针和数组(Array)数组名一位数组名a是个指针常量inta=1,2,345;在内存中开辟了一个连续的5个整形变量的内存空间。它们是共生共亡。它存放的是一维数组第一个元素的地址,、它的值不能被改变是错误的!一维数组名指向的是数组的第一个元素。下表和指针的关系ai<<=>>*(a+i)下标和指针的关系假设指针变量的名字为P则p+i的值是p+i*(P所指向的变量所占的字节数)指针变量的运算指针变量不能相加,乘除。如果两指针变量属于同一数组,则可以相减指针变量可以相减一整数,前提是最终结果不能草果指针的范围P÷i的值是p+i*(P所指向的变量所占的字节数)p-i的值是p-i*(P所指向的变量所占的字节数)p+=p+1如何通过被调函数修改主函数中一位数组的内容两个参数存放数组首元素的指针变量存放数组元素长度的整形变量# includestdio.hvoidshow-array(int*p,intIen)(p2=-l;/p0=*pp21=*(p÷2)=*(a+2)=af21pi此时就是主函数的ai)intmain(void)(inta5=11,2,3,4,5;show_arraya(a,5)/a等价于&a0,&a0本身就是int*类型return0一个double占八个字节,一个字节是8位,美一个字节都占一个地址。指针变量都只占四个字节(无论指针变量指向的对象占多少字节,它只占4个字节J指针变量只占4个字节原因:在32位的操作系统中,一共有32根地址总线,可以有2的32次方大小的地址编码,所以需要4个字节的大小来表示,所以32位的操作系统中,指针的大小是4个字节。P=&x表示p只代表X的第一个字节的地址如何通过函数修改实参的值#include<stdio.h>voidf(int*q)函数声明intmain(void)(inti=9;inl*p=&i;/等效为ini*p;p=&i;Primf("pn”,p);/%P表示输出指针变量所指向的元素的地址例如此例中就输出的事i的地址.return0;)voidf(int*q)(*q=(inl*)0xFFFFFFFF;/(int*)表示强制转换OXFFFFFFFF为地址,如果不强制转换OXFFFFFFFF只表示一个十六进制的数)如果想改写一个变量的值,只需要发送它的地址给被掉函数,否则无法实现对主函数中变量的值的改变。结构体:为什么会出现结构体:为了表示一些复杂的数据,而普通的根本类型变量无法满足要求什么叫结构体:(是c+中类的过度)是用户根据实际需要自己定义的复合数据类型如何使用结构体:structStudent=1000,vZhangshanw,20);结构体Structsudent*pst=&st;1;st.sid2.pst->sidPst所指向的结构体中的sid这个成员考前须知;结构体变量不能加减乘除,但是可以相互赋值普通结构体变量和结构体指针变量作为函数传参的问题#include<stdio.h>#includes【ring.h>一串,一行struct结构体Student(intsid;charname200;intage;);分号不能省intmain(void)(structStudentst=1000.',zhangshan",20);printf("%d%s%dn,st.sid,st.name,stage);st.sid=99;strcpy(st.name,"lisi");/st.name="lisi,r;errorst.age=22;printf("%d%s%dn,',st.sid,st.name,stage);/printf(,%d%s%dn,st);returnO;)结构体2#include<stdio.h>#include<string.h>/串,一行struct结构体Student(intsid;charname200;intage;);分号不能省intmain(void)结构体StructStudentst=1000,“张三”,20;/sl.sid=99;第一种方式StructStudent*pst;定义一个指针变量,此指针变量只能存放我们自己定义的StructStudent类型的变量的地址Pst=<fest;Pst->sid=99Jpsl->sid等价于*pst).sid而(*psl).sid等价于sl.sid,所以pst->sid=st.sidreturn0;I第八次课:结构体:1:为什么会出现结构体为了表示一些复杂的数据,而普通的根本类型变量无法满足要求2:什么叫做结构体用户根据实际需要自己定义的复合数据类型3:如何使用结构体算法1:#include<stdio.h>structStudentintsid;charname100;intage;1;intmain()(structStudentst=2013213990,wangchuankun",20prinlf(,%d%s%dn'st.sid,st.name,st.age);returnO;输出结果:2013213990Wangchuankun2请按任意键继续.有两种方式:1:4:考前须知结构提变量不能加减乘除,但是可以相互赋值。结构提变量和结构体指针变量作为函数传参算法2:算法目的:通过结构体调用指针给主函数中结构体变量赋值#include<stdio.h>#include<string.h>structStudent(intsid;charname200;intage;);voidf(structStudent*pst)(*pst).sid=2013213990;strcpy(pst->name,"wangchuankun");psl->age=22;)intmain()(structStudentst;f(&st);printf(,%d%s%dn",st.sid,st.name,st.age);returnO;运行结果:2013213990Wangchuankun22请按任意键继续.算法3:算法目的:通过结构体调用指针给主函数中结构体变量赋值并且通过函数调用将主函数中的结构体变量依次输出。#include<stdio.h>#include<string.h>structStudentintsid;charname100;intage;);voidf(structStudent*pst)(*pst).sid=2013213990;strcpy(pst->name,"汪传坤");pst->age=20;)voidg(structStudent*pst)(printf(',学号:%dn姓名:%sn年龄:%dnn,',psl->sid,pst->name,pst->age);)intmain()structStudentst;g(&st);g(si)速度慢,并且耗内存return0;)运行结果:学号:2013213990姓名:汪传坤年龄:20请按任意键继续.*p=(int*)malioc(4);Inlmain()Int*p;Foo(&p);)DVoidf(int*p)(*p=(int*)malloc(4);IIntmain()Int*p;F(p);Free(p);)练习程序:#include<stdio.h>#include<malloc.h>void

    注意事项

    本文(郝斌数据结构笔记.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开