《数据结构及应用算法教程》(修订版)严蔚敏、陈文博版 学习记录及资料

考研需要这本书,之前是买的书本,但回家没带书需要找这本书电子版,PPT,答案找了好久,整理了一下csd 上有但都需要20多币,心疼我钱包微笑的币,资料请看最后面

目录

 1  输入与输出

 2  预定义常量

 3  函数

 4  结构体

 5  引用

 6  指针

 7  内存动态分配与释放

 8  枚举

 9  类型定义(typedef)


 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.csdn.net/download/sereasuesue/12406470

https://download.csdn.net/download/sereasuesue/12406461

 

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据结构应用算法教程》是严蔚敏教授与陈文博教授合著的一本教材,由清华大学出版社出版。该教材是专门针对数据结构算法这门课程编写的,旨在帮助读者深入理解和掌握相关知识。 严蔚敏教授是计算机科学与技术专业的知名教授,在数据结构算法领域有着丰富的研究经验和教学经验。他的教学风格严谨细致,善于把复杂的概念和算法讲解得浅显易懂,深受学生喜爱。他的专业素养和教学水平被广大学生和同行所认可。 陈文博教授也是计算机科学与技术专业的知名教授,对数据结构算法领域有着深入的研究。他在教学中注重理论与实践的结合,善于通过实例和案例分析来帮助学生理解和应用知识。他的教学方法风趣幽默,往往能够激发学生的学习兴趣和思考能力。 这本教材涵盖了数据结构算法的基本概念、常见数据结构(如数组、链表、栈、队列、树、图等)的实现和应用、排序和查找算法、图算法等内容。书中不仅有详细的理论讲解,还有大量的例题、习题和编程实践,帮助读者巩固理论知识,提高实践能力。 总之,《数据结构应用算法教程》是一本很好的数据结构算法教材,由于严蔚敏教授和陈文博教授的高水平编写和教学经验,该教材在国内外广受欢迎,成为了数据结构算法领域的经典教材之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值