课件年专升本数据结构.docVIP

  • 5
  • 0
  • 约3.9万字
  • 约 52页
  • 2018-06-06 发布于江西
  • 举报
课件年专升本数据结构.doc

第一章 引论 一、算法 涉及题目: 05年 二(1,3)? 二、复杂度=占用资源的多少,时间、空间 O(...)?,表示数量级 O(1)O(l?og2n)?O(n)?O(n*?log n?) O(?n^k)?O(2^n?) 1、时间复杂度 相对时间,一条指令(语句)运行时间 为1计算: 非递归=主要循环(最费时)执行的次数 递归= 结果中的常数(0)和系数(1),低阶全 部去掉(0) ? 3?n+7+0?.5*n*?n=O(n?*n) 复杂度类型:最好、最坏、平均 2、空间复杂度:辅助数据空间,如果没 有,则是O(1) 涉及题目: 07年 15 三、抽象数据类型: 抽象:一个定义,两个统一 自己定义,用typed?ef ?统一类型名称(无论物理结构为何), 统一函数的名称、参数和返回类型 统一是为了编写程序方便(......) 数据类型例子:C里头int就是一个类型 ? ? i?nt x;? 变量是内存中的若干字节,一套房子 变量有名字,张三家 有地址,305 类型有名字、是模板(两室一厅)。 函数定义例子:C里头 void ?f(int? i, f?loat ?y); 函数有名字,参数(局部变量)、返回类型 参数是碗,参数的值=水 int x?,y; ? x=y?; ?赋值语句左边是单元,右边是单元的内容 类型定义:typed?ef例子: ? typ?edef ?struc?t x *?YYY; ? ?typed?ef st?ruct ?x{ ? ?int a?; ? i?nt b;? ? ch?ar c;? ? }Lis?tItem?; ? voi?d mai?n(){ ? ? List?Item ?y; ? ? y.?a=6;/?/y家a房间住6 ?YYY p?; ? p=?y;//?y家地址保存在p中 ? p-a?=7; ? }? 四、 数据结构=逻辑结构,物理结构 数据逻辑结构:顶层 成分数据 +成分数据之间关系 (线性、层次-树、图) 数据元素(成分数据):一个同学档案 数据项:姓名、生日、学号.... ? 数据物理结构:-底层 存储结构=顺序(数组)、非顺序(链表) ?操作的算法具体实现不同 (比如在数组插入,在链表中插入算法不同) 但是可以用高级语言C ? 统一类型名称----AD?T(抽象数据类型) (逻辑结构写成数据类型, 无论用什么物理结构) 统一操作的函数定义 (函数名和参数)---A?DT v?oid ?Inser?t(int? k,Li?stIte?m x,.?..) ? 应用程序 逻辑结构 ADT? -界面/接口 物理结构 五、指针 1、地址是非负整数,地址长度与内存大小有关。n个字节,地址二进制最短长度log n?位 2、指针变量是保存地址的变量, 变量是内存中的若干字节,一套房子 变量有名字,张三家 有地址,305 变量有类型:具体占几个字节。 ? ?变量的运算 3、指针变量占字节数=地址长度,sizeof ?4、指针变量必须有名字、类型 i?nt *p?; ? ?int x?; ? ?p=x;?//p存放x的首字节地址。 *表示指针变量, 该变量名字为p, int表示p是指向int类型变量, p中存放一个int变量首字节的地址, p代表x占有的所有空间(由p类型决定),。 p?=x;表示p内保存x首字节的地址, 注意x不止一个字节,p虽然是指向x首 字节,并不意味p只管x的首字节,而 是管理x的所有字节。因为p是指向int 的指针。 ?p++相当于p加上sizeof?(int)?,即 int变量占用的字节数 si?zeof(?p)是p占用的字节数 5、 do?uble ?*q; ? q+?+相当于q加上sizeof(d?ouble?) ? siz?eof(q?)是q占用的字节数, 6.不管是什么类型的指针变量,所占字 节数应该相同,但是不同指针变量不能 任意互相赋值,因为无法确定究竟管理 多少字节。 如果要互相赋值,必须进行强制类 型转换。 p=?q;//错 ?p=(in?t *)q?;//对 这样p与q内容相同,但是p管理两 个字节,q管理4个字节。 空类型指针void,表示不知道 应该管理几个字节。 6、 typ?edef ?

文档评论(0)

1亿VIP精品文档

相关文档