- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序不能处理多组数据的问题是最常见的入门问题,只要掌握几种常见的类型
Scanf函数返回值就是读出的变量个数,如:scanf( “%d %d”, &a, &b );
如果只有一个整数输入,返回值是1,如果有两个整数输入,返回值是2,如果一个都没有,则返回值是-1。EOF是一个预定义的常量,等于-1。
文件结束符EOF的值是-1而不是0,所以while(scanf(…)!=0)常常会造成死循环,这个必须牢记。
注意:编程方式和方法不要与常规思维混同,编程需要牢记初始化。
不同数据类型一同运算的时候,运算结果的数据类型和相对复杂的类型一致(比如 整数+实数,结果类型是实数)
在一个程序中同时使用C和C++的输出语句,很容易带来问题,原因就是输出机制不完全一样(一个不带缓冲,一个带缓冲),所以尽量避免C和C++输出语句混用。注意两种不同的方法
#include<cstdio>
#include<iostream>
using namespace std;
请一定注意Runtime Error的错误,常规情况下数组越界。
递推求解的常规方法。请从简到略
递推中,空间换时间的思想,不一定只是从N-1到N的分析
排序请掌握:冒泡排序、快速排序,请注意其中的分析,复杂度
动态规划,自底向上计算
例:有形如下图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一直走到底层,要求找出一条路径,使路径上的值最大。
请简单分析
注意,动态规划中,保存已经解决的子问题的答案,基本思路是,用一个表记录所有已解决的子问题的答案。
状态:问题以及事物状态在某一发展阶段的数学描述
状态转移:问题从一种状态转移到另一种状态的操作
搜索树:以阶段中每一个状态作为一个点,状态之间的转移作为边,形成一个隐式图。其中我们把初始状态看做根。那么我们的搜索过程实际上就是在对这个树的结点做遍历。
广度(广域)优先搜索(BFS)
深度(深域)优先搜索(DFS)
容器可容纳各种数据类型的数据结构。
迭代器可依次存取容器中元素的智能指针。
注意,使用头问题<vector>,实际上就是个动态数组。随机存取任何元素都能在常数时间完成。在尾端增删元素具有较佳的性能。
顺序容器:将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素。 (vector)。
Stack栈:LIFO(后进先出)、queue队列:FIFO(先进先出)
例程1:
begin:返回指向容器中第一个元素的迭代器,end返回指向容器中最后一个元素后面的位置的迭代器
例程2:
请注意以下两种语句的用法p = find( v.begin(), v.end(), 3);p = find( v.begin()+1, v.end()-2,3);
数据结构,显示存在
最顶层的节点被称为根(root)
叶子节点:指没有子节点的节点。
子树:是树结构的一部分, 但它本身也可被看作一个树结构,这就是子树。
节点的层级:它指一个节点与根节点之间的距离(按节点数目计算)。根节点永远位于第0级。
树结构的深度:指一个树结构的最大层级。
例题:
三类二叉树的区别
二叉树的数组存储
中序遍历(Inorder traversal)
前序遍历(Preorder traversal)
后序遍历(Postorder traversal)
几点提醒:
1、上机考试内容较为简单,请同学们仔细一些,细心一些,应该会有意外惊喜。
2、笔试时间为周五,具体时间与学院确定后会通知大家。
3、最后一章简单数据结构应刚上完课,故不在以上资料中体现,但内容重要,考试中的比率也会比较大,特别是时间复杂度的估算这些内容,所以请同学们认真准备。
4、祝全体同学考出好的成绩
文档评论(0)