程序设计选讲摘记.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档