《数据结构及应用算法教程》(修订版)严蔚敏、陈文博版 学习记录及资料
考研需要这本书,之前是买的书本,但回家没带书需要找这本书电子版,PPT,答案找了好久,整理了一下csd 上有但都需要20多币,心疼我钱包微笑的币,资料请看最后面
目录
1 输入与输出
输入与输出 输入与输出流对象:cout和cin(iostream.h)
(1)用cout进行输出
格式:cout<<表达式1<<表达式2<<…;
用预定义的插入符<<,作用于流类对象cout上实现输出
如:cout<<"hello!"<<endl; cout<<"a="<<setw(5)<<a<<endl; 注:setw(int) 、endl为I/O流类库操纵符(iomanip.h)
(2) 用cin进行输入 格式:cin>>变量1>>变量2>>…;
将提取符>>作用在流类对象cin上实现输入 如:int a,b; cin>>a>>b;
2 预定义常量
2 预定义常量和类型
符号常量定义:用一个标识符来表示一个常量.
注意:符号常量在使用之前一应要首先声明,符号常量声明语句的格式为:
const 数据类型说明符 常量名=常量值; 或 数据类型说明符 const 常量名=常量值;
例如:const float pi=3.14159265;
注意:符号常量在声明时必须要赋初值,而在程序中不能改变其值。符号常量的优点:有利于提高程序的可读性和方便修改。
3 函数
3.2 函数参数
形式参数:定义函数时函数名后面括号中的变量名称
实际参数:主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)
函数调用时实参与形参应一一对应,参数结合有两种方式:值传递与地址传递。
3.3 函数的返回值
通过语句return(表达式)获得,返回值的类型应与函数类型一致,若无返回值,函数类型应定义为void。
3.4 函数调用 格式:函数名(实参表列) 说明:有语句、表达式、函数参数三种调用方式
3.5 函数声明
如果使用库函数,还应该在本文件开头用#include命令将 调用有关库函数时所需用到的信息“包含”到本文件中来。
如果使用自定义的函数,而该函数的位置在调用它的函数(即主调函数)的后面,应该在主调函数中对被调用的函 数作声明。
函数原型的一般形式为: 函数类型 函数名(参数类型1,参数类型2……);
3.6 函数的递归调用 在调用一个函数的过程中又出现直接或间接地调用该函 数本身。
递归问题的关键:递推公式、递归条件(边界)
3.7 带缺省参数的函数
一般情况下,实参个数应与形参个数相同。
C++允许实参个数与形参个数不同。办法是在形参表列中对一个或几形 参指定缺省值(或称默认值)。
格式: 函数类型 函数名(类型1 参数1,类型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,4,100。
注意:赋予缺省值的参数必须放在形参表列中的最右端。
4 结构体
注意(1)不要忽略最后的分号; (2)struct student是一个类型名,它和系统提供的标准类型(如int、char、float等)一样具有同样的地位和作用,都可以用来定义变量的类型,只不过结构体类型需要由用户自己指定而已。 (3)“成员表列”称为“域表”,每一个成员也称为结构体中的一个域。成员名命名规则与变量名相同。
4.2 定义结构体类型变量的方法
先定义结构体类型再定义变量 如:struct student student1,student2;
在声明类型的同时定义变量 一般形式为: struct 结构体名 { 成员表列 }变量名表列;
直接定义结构体类型变量 一般形式为: struct { 成员表列 }变量名表列;
4.3 结构体变量的引用 不能将一个结构体变量作为一个整体进行输入和输出。
引用结构体变量中成员的方式: 结构体变量名.成员名 说明: “.”是成员(分量)运算符,它在所有的运算符中优先级最高,
5 引用
(1)引用的概念
“引用”(reference)是C++的一种新的变量类型,它的作用是为一个变量起一个别名, 并没有开辟新的存储区。 定义方法: 类型名 &引用变量名=变量名; 假如有一个变量a,想给它起一个别名b,可以这样写:
int a; int &b=a;
(2)说明: ①引用与被引用的变量具有相同的存储地址; ②对引用和对被引用变量的操作是一样的,对引用的存取就是对被引用变量的存取,对引用变量的存取就是对引用的存取 ③引用变量必须初始化;不可建立对不同类型变量的引用
(3)引用作为函数参数 有了变量名,为什么还需要一个别名呢?C++之所以增加“引用”,主要是把它作为函数参数,以扩充函数传递数据的功能。 函数调用参数传递方式:值传递与地址传递。 C++提供了向函数传递数据的第三种方法,即传送变量的别名。
&a ,怎样区别是声明引用变量还是取地址的操作呢?
请记住,当&a的前面有类型符时(如int &a),它必然是对引用的声明,如果前面无类型符(如 &a),则是取变量的地址。
6 指针
7 内存动态分配与释放 运算符new和delete
C++提供了较简便而功能较强的运算符new和delete来取代 malloc、calloc和free函数。
(1) new运算符 简单变量动态存储格式为: 指针变量=new 类型名(初值表列);
例如: int *p=new int; //开辟一个存放整数的空间,返回一个指向整型数据的指针
int *p=new int(100); //开辟一个存放整数的空间,并指定该整数的初值为100
float *p=new float(3.14159) //开辟一个存放浮点数的空间,并指定该浮点数的初值为 3.14159,将返回的指向实型数据的指针赋给指针变量p。
数组动态存储格式:指针变量=new 类型名[元素个数];
如: int n=5, *p=new int[n];
char *ps=new char[10]; //开辟一个存放字符数组的空间,该数组有10个元素,返回一个指向字符数据首字符的指针 float (*q)[4]=new float[5][4]; //申请可存放5行4列浮点数的空间 注:用new分配数组空间时不能指定初值。
(2) delete运算符 格式: delete [] 指针变量 作用:释放由new申请到的内存空间。
如:delete p; delete [ ] ps , q; //加方括号,表示对数组空间的操作
8 枚举
枚举 定义枚举类型的一般格式:
enum 枚举类型名{枚举元素表}; 例如:enum bool {true,false};
说明: 1. 枚举元素为符号常量,不能改变其值;
2. 枚举常量的值为整数,按定义时的顺序依次为:0,1,2,…
enum weekday (Sun,Mon,Tue,Wed,Thu,Fri,Sat); enum weekday (Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat);
3. 枚举常量可赋给枚举变量,但不可将一整数赋给枚举变量
weekday day; day=Mon; cout<<day; //结果为1
4. 枚举值可以比较大小
9 类型定义(typedef)
用typedef定义类型 用typedef声明新的类型名来代替已有的类型名。
typedef int INTEGER; //声明INTEGER为整型
typedef float REAL; 声明结构类型
typedef struct { int month; int day; int year; } DATE; 变量声明: INTEGER i,j,k; REAL x,y,z; DATE birthday,workday;
其它说明:
1. 结束语句 ① return <表达式> 或return //用于函数结束
② break语句 //用于循环或switch 语句中
③ continue语句 //用在循环中结束本次循环过程, 进入下一次循环
④ exit语句 //表示出现异常情况时,控制退出函数
2. 注释形式 /* 字符串 */ 多行注释 //字符串 单行注释
辛苦整理的,一点点辛苦币吧
https://download.****.net/download/sereasuesue/12406470
https://download.****.net/download/sereasuesue/12406461