数据结构-预备知识.ppt
《数据结构-预备知识.ppt》由会员分享,可在线阅读,更多相关《数据结构-预备知识.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 Saturday,October 06,2012 1第0章 Thursday,August 27,2009 1 Thursday,August 27,2009 1 Saturday,October 06,2012 2l l 主要内容 1 1 输入与输出输入与输出 2 2 预定义常量预定义常量 3 3 函数函数 4 4 结构体结构体 5 5 引用引用 6 6 指针指针 7 7 内存动态分配与释放内存动态分配与释放 8 8 枚举枚举 9 9 类型定义类型定义(typedeftypedef)Saturday,October 06,2012 31 1 输入与输出输入与输出输入与输出流对象输入与输出流
2、对象:coutcout和和cincin(iostream.hiostream.h)(1)(1)用用coutcout进行输出进行输出格式格式:coutcout表达式表达式11表达式表达式22;用预定义的插入符用预定义的插入符,作用于流类对象,作用于流类对象coutcout上实现输出上实现输出如:如:coutcouthello!hello!endlendl;coutcouta=setw(5)aa=setw(5)a变量变量11变量变量22;将提取符将提取符作用在流类对象作用在流类对象cincin上实现输入上实现输入如:如:intint a,ba,b;cincinab;ab;Saturday,Octo
3、ber 06,2012 4例例1:cin与与cout的使用的使用#include void main()coutPlease enter your name and age:name;cinage;cout“Your name is nameendl;cout“Your age is ageendl;运行情况如下:运行情况如下:Please enter your name and age:Wang-li 19 your name is Wang-liyour age is 19 Saturday,October 06,2012 52 2 预定义常量和类型预定义常量和类型符号常量定义符号常量定义
4、:用一个标识符来表示一个常量用一个标识符来表示一个常量.注意注意:符号常量符号常量在使用之前一应要首先声明在使用之前一应要首先声明,符号常量声明语句的格式为符号常量声明语句的格式为:const 数据类型说明符数据类型说明符 常量名常量名=常量值常量值;或或 数据类型说明符数据类型说明符 const 常量名常量名=常量值常量值;例如例如:const float pi=3.14159265;函数结果主要状态代码:函数结果主要状态代码:typedef int status;/status是函数的类型,其值是函数结果状态代码。是函数的类型,其值是函数结果状态代码。const true=1;const
5、false=0;Saturday,October 06,2012 6 const OK=1 const ERROR=0 const INFEASIBLE=1 const OVERFLOW=2注意注意:符号常量在声明时必须要赋初值符号常量在声明时必须要赋初值,而在程序中不能改变而在程序中不能改变其值。符号常量的优点其值。符号常量的优点:有利于提高程序的可读性和方便修有利于提高程序的可读性和方便修改。改。Saturday,October 06,2012 73 3 函数函数3.1 函数的定义:函数的定义:用于完成特定功能或操作的程序模块用于完成特定功能或操作的程序模块.一般格式一般格式:函数类型函数
6、类型 函数名(参数表)函数名(参数表)/算法说明算法说明 语句序列语句序列 /函数名函数名如:如:int max(int,int)*定义有参函数定义有参函数max *int?;return();();Saturday,October 06,2012 83.2 函数参数函数参数形式参数:定义函数时函数名后面括号中的变量名称实际参数:主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)函数调用时实参与形参应一一对应,参数结合有两种方式:值传递与地址传递。3.3 函数的返回值函数的返回值 通过语句return(表达式)获得,返回值的类型应与函数类型一致,若无返回值,函数类型应定义为v
7、oid。3.4 函数调用函数调用格式:函数名(实参表列)说明:有语句、表达式、函数参数三种调用方式 Saturday,October 06,2012 93.5 函数声明函数声明 如果使用库函数,还应该在本文件开头用#include命令将调用有关库函数时所需用到的信息“包含”到本文件中来。如果使用自定义的函数,而该函数的位置在调用它的函数(即主调函数)的后面,应该在主调函数中对被调用的函数作声明。函数原型的一般形式为:函数类型 函数名(参数类型1,参数类型2);3.6 函数的递归调用函数的递归调用 在调用一个函数的过程中又出现直接或间接地调用该函数本身。Saturday,October 06,2
8、012 10递归问题的关键:递推公式、递归条件(边界)递归问题的关键:递推公式、递归条件(边界)如:已知Fibonacci数列的第n项为:编写求第n项的递归函数long fib(int n)/n的合法性在主调函数中检测 long f;if(n=1|n=2)f=1;else f=fib(n-1)+fib(n-2);return(f);Saturday,October 06,2012 113.7 带缺省参数的函数带缺省参数的函数 一一般般情情况况下下,实实参参个个数数应应与与形形参参个个数数相相同同。C+允允许许实实参参个个数数与与形形参参个个数数不不同同。办办法法是是在在形形参参表表列列中中对对
9、一一个个或或几几形形参指定缺省值参指定缺省值(或称默认值或称默认值)。格式:格式:函数类型函数类型 函数名函数名(类型类型1 1 参数参数1,1,类型类型2 2 参数参数2=2=表达式表达式,)如:某函数首部:如:某函数首部:void fun(int a,int b,int c=100)在在调调用用此此函函数数时时如如写写成成fun(2,4,6),则则形形参参a,b,c的的值值分分别别为为2,4,6。如如果果写写成成fun(2,4),即即少少写写了了最最后后一一个个参参数数,由由于于在在函函数数定定义义时时已已指指定定了了c的的缺缺省省值值为为100,因因此此a,b,c的值分别为的值分别为2,
10、4,100。注意:赋予缺省值的参数必须放在形参表列中的最右端。注意:赋予缺省值的参数必须放在形参表列中的最右端。Saturday,October 06,2012 124 4 结构体结构体结构体结构体:不同类型相互关联的数据的有序集合。不同类型相互关联的数据的有序集合。4.1 声明一个结构体类型的一般形式为:声明一个结构体类型的一般形式为:struct 结构体名结构体名 成员表列;成员表列;如:如:struct student int num;char name20;char sex;int age;float score;char addr30;结构体名成员类型名成员名(域名)Saturday
11、,October 06,2012 13说明说明:(1)不要忽略最后的分号不要忽略最后的分号;(2)struct student是一个类型名,它和系统提供的标准类是一个类型名,它和系统提供的标准类型型(如如int、char、float等等)一样具有同样的地位和作用,都可一样具有同样的地位和作用,都可以用来定义变量的类型,只不过结构体类型需要由用户自己以用来定义变量的类型,只不过结构体类型需要由用户自己指定而已。指定而已。(3)“成员表列成员表列”称为称为“域表域表”,每一个成员也称为结构体中每一个成员也称为结构体中的一个域。成员名命名规则与变量名相同。的一个域。成员名命名规则与变量名相同。Sat
12、urday,October 06,2012 144.2 定义结构体类型变量的方法定义结构体类型变量的方法n 先定义结构体类型再定义变量先定义结构体类型再定义变量如:如:structstruct student student1,student2;student student1,student2;n 在声明类型的同时定义变量在声明类型的同时定义变量一般形式为一般形式为:structstruct结构体名结构体名 成员表列成员表列 变量名表列;变量名表列;n 直接定义结构体类型变量直接定义结构体类型变量一般形式为一般形式为:structstruct 成员表列成员表列 变量名表列;变量名表列;Sat
13、urday,October 06,2012 154.3 结构体变量的引用结构体变量的引用不能将一个结构体变量作为一个整体进行输入和输出。不能将一个结构体变量作为一个整体进行输入和输出。引用结构体变量中成员的方式引用结构体变量中成员的方式:结构体变量名结构体变量名结构体变量名结构体变量名.成员名成员名成员名成员名说明说明:“.”是成员是成员(分量分量)运算符运算符,它在所有的运算符中优先它在所有的运算符中优先级最高,级最高,student1.num表示表示student1变量中的变量中的num成员成员,可以可以对变量的成员赋值对变量的成员赋值,例如例如:student1.num=10010;/将
14、整数将整数10010赋给赋给student1变量中的成员变量中的成员num student1.age+;/使使student1.age中的成员中的成员age进行自加运算进行自加运算 Saturday,October 06,2012 164.4 4.4 结构体变量的初始化结构体变量的初始化结构体变量的初始化结构体变量的初始化 与其他类型变量一样,对结构体变量可以在定义时指定初与其他类型变量一样,对结构体变量可以在定义时指定初始值。例始值。例:对结构体变量初始化。对结构体变量初始化。struct student long int num;char name20;char sex;char addr
15、20;a=89031,Li Lin,M,123 Beijing Road;Saturday,October 06,2012 175 引用引用(1)引用的概念引用的概念 “引用引用”(reference)是是C+的一种新的变量类型,它的的一种新的变量类型,它的作用是为一个变量起一个别名作用是为一个变量起一个别名,并没有开辟新的存储区。并没有开辟新的存储区。定义方法定义方法:类型名类型名&引用变量名引用变量名=变量名变量名;假如有一个变量假如有一个变量a,想给它起一个别名,想给它起一个别名b,可以这样写:,可以这样写:int a;int&b=a;(2)说明说明:引用与被引用的变量具有相同的存储地址
16、引用与被引用的变量具有相同的存储地址;对引用和对被引用变量的操作是一样的对引用和对被引用变量的操作是一样的,对引用的存取就是对引用的存取就是对被引用变量的存取,对引用变量的存取就是对引用的存取对被引用变量的存取,对引用变量的存取就是对引用的存取引用变量必须初始化引用变量必须初始化;不可建立对不同类型变量的引用不可建立对不同类型变量的引用 Saturday,October 06,2012 18例例2:了解引用和变量的关系:了解引用和变量的关系#include#include void main()int a=10;int&b=a;/声明声明b是是a的引用的引用 a=a*a;/a的值变化了,的值变
17、化了,b的值也应一起变化的值也应一起变化 coutasetw(6)bendl;b=b/5;/b的值变化了,的值变化了,a的值也应一起变化的值也应一起变化 coutbsetw(6)aendl;运行结果如下:运行结果如下:1001002020 Saturday,October 06,2012 19(3)引用作为函数参数引用作为函数参数 有了变量名,为什么还需要一个别名呢?有了变量名,为什么还需要一个别名呢?C+之所以增加之所以增加“引用引用”,主要是把它作为函数参数,以扩充函数传递数据的,主要是把它作为函数参数,以扩充函数传递数据的功能。功能。函数调用参数传递方式:函数调用参数传递方式:值传递与地
18、址传递。值传递与地址传递。C+提供了向函数传递数据的第三种方法,即传送变量的提供了向函数传递数据的第三种方法,即传送变量的别名。别名。Saturday,October 06,2012 20例例3:利用:利用“引用形参引用形参”实现两个变量的值互换实现两个变量的值互换#include void swap(int&a,int&b)int temp;temp=a;a=b;b=temp;void main()int i=3,j=5;swap(i,j);couti=i j=jendl;输出结果为输出结果为i=5 j=3 Saturday,October 06,2012 21说说明明:实实参参传传给给形形
19、参参的的是是变变量量的的地地址址,也也就就是是使使形形参参a具具有有变变量量i的的地地址址,从从而而使使a和和i共共享享同同一一单单元元。为为便便于于理理解解,我我们们说说把把 变变 量量i的的 名名 字字 传传 给给 引引 用用 变变 量量a,使使a成成 为为i的的 别别 名名。系系统统传传送送的的是是实实参参的的地地址址而而不不是是实实参参的的值值,这这种种用用法法比比使用指针变量简单、直观、方便。使用指针变量简单、直观、方便。注注:当当读读者者看看到到&a这这样样的的形形式式时时,怎怎样样区区别别是是声声明明引引用用变变量量还还是是取取地地址址的的操操作作呢呢?请请记记住住,当当&a的的
20、前前面面有有类类型型符符时时(如如int&a),它它必必然然是是对对引引用用的的声声明明,如如果果前前面面无无类类型型符符(如如&a),则是取变量的地址。),则是取变量的地址。Saturday,October 06,2012 226 6 指针指针6.1 变量的指针:变量的指针:变量在内存中的地址变量在内存中的地址指针变量的定义:基类型指针变量的定义:基类型*指针变量名指针变量名;如:如:int*p,i=3;p=&i;引用指针变量引用指针变量p指向的存储单元的内容:指向的存储单元的内容:*p6.2 数组的指针数组的指针(1)一维数组指针一维数组指针定义格式定义格式:指针类型名指针类型名*指针名指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 预备 知识
限制150内