数据结构、算法与应用c++语言描述(答案)

https://www.cise.ufl.edu/~sahni/dsaac/view.htm

  本身不是计算机专业的,属于那种自学半路出家的,最近刚开始看这本书,不知道为什么作者放的答案只有一半,正好重新学习下c++,慢慢做吧。下边自己写的没有答案的部分,有错误请指正。

chapter 1  02

template <typename T>
qint32 count(const QList<T> &list, const T &value) {qint32 sum = 0;foreach (auto var, list) {if(var == value) {sum++;}}return sum;
}
int main() {QList<qint32> list_int = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0};std::cout << "list_int Count is " << count(list_int, 0) << std::endl;QList<QString> list_str = {"a", "b", "c", "c", "c"};QString str = "c";std::cout << "list_str Count is " << count(list_str, str) << std::endl;return 0;
}

chapter 1  04

template <typename T>
bool inner_product(const QList<T> &list_a, const QList<T> &list_b, T &result) {if(list_a.size() != list_b.size()) {qWarning() << "list_a.size() != list_b.size()";return 0;}QList<T> list_result;T theSum = 0;for (qint32 i = 0; i < list_a.size() ; ++i) {list_result << list_a.at(i)*list_b.at(i);}result = accumulate(list_result.begin(), list_result.end(), theSum);return 1;
}int main() {QList<qint32> list_a = {1, 2, 3}, list_b = {1, 2, 3};QList<double> list_c = {1.1, 2.0, 3.0}, list_d = {1.0, 2.0, 3.0};qint32 result_ab = 0;double result_cd = 0.0;if(inner_product(list_a, list_b, result_ab)) {qDebug() << "result_ab inner_product" << result_ab;}if(inner_product(list_c, list_d, result_cd)) {qDebug() << "result_cd inner_product" << result_cd;}return 0;
}

chapter 1  06

template <typename T>
bool is_sorted(const QList<T> &list, qint32 n = -1) {if(n < 0) {n = list.size();}for (qint32 i = 0; i < n - 1; i++)if (list[i] > list[i + 1]) {return 0;}return 1;
}int main() {QList<qint32> list_int = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0};qDebug() << is_sorted(list_int);qDebug() << is_sorted(list_int, 10);list_int[3] = 0;qDebug() << is_sorted(list_int, 10);return 0;
}

chapter 1  08
  具有相同的签名,但是这玩意根本就编译不过啊。两个函数仅仅只有函数返回值不同,那么系统是无法区分这两个函数的,此时编译器会提示语法错误。

chapter 1  10
  这个就是判断让后修改下跑出异常就可以。

chapter 1  12

template <class T>
bool make2dArray(T ** &x, int numberOfRows, int rowSize[]) {try {x = new T * [numberOfRows];for (int i = 0; i < numberOfRows; i++) {x[i] = new int [rowSize[i]];}return true;} catch (std::bad_alloc) {return false;}
}int main() {int **a;int rowSize[2];rowSize[0] = 2;rowSize[1] = 3;make2dArray(a, 2, rowSize);a[0][0] = 1;a[0][1] = 2;a[1][0] = 3;a[1][1] = 4;a[1][2] = 5;cout << a[0][0] << ' ' << a[0][1] << endl;cout << a[0][0] << ' ' << a[1][1] << ' ' << a[1][2] << endl;return 0;
}

数据结构、算法与应用c++语言描述(答案)相关推荐

  1. 数据结构 算法与应用C 语言描述答案,数据结构算法与应用-C语言描述.pdf

    下载 下载 第1 6章 回 溯 寻找问题的解的一种可靠的方法是首先列出所有候选解,然后依次检查每一个,在检查完 所有或部分候选解后,即可找到所需要的解.理论上,当候选解数量有限并且通过检查所有或 部分 ...

  2. 数据结构 算法与应用C 语言描述第六章,数据结构算法与应用-C语言描述002.pdf

    下载 下载 第2 章 程 序 性 能 以下是本章中所介绍的有关程序性能分析与测量的概念: • 确定一个程序对内存及时间的需求. • 使用操作数和执行步数来测量一个程序的时间需求. • 采用渐进符号描述 ...

  3. 数据结构与算法分析:C语言描述(原书第2版 简体中文版!!!) PDF+源代码+习题答案...

    转自:http://www.linuxidc.com/Linux/2014-04/99735.htm 数据结构与算法分析:C语言描述(原书第2版中文版!!!) PDF+源代码+习题答案 数据结构与算法 ...

  4. 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 回溯法

    <数据结构.算法与应用 -- C++语言描述>学习笔记 - 回溯法 一.算法思想 二.货箱装载 1.问题描述 2.回溯算法 3.实现 4.测试代码 一.算法思想 回溯法是搜索问题解的一种系 ...

  5. 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 优先级队列 — 左高树

    <数据结构.算法与应用 -- C++语言描述>学习笔记 - 优先级队列 - 左高树 一.左高树 1.外部节点 2.高度优先左高树 (1)定义 (2)特性 (3)HBLT 与 大小根树 3. ...

  6. 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 竞赛树

    <数据结构.算法与应用 -- C++语言描述>学习笔记 - 竞赛树 一.赢者树 二.二叉树的数组描述(补充) 1.声明 2.实现 三.赢者树 1.抽象数据类型 2.赢者树的表示 3.声明 ...

  7. 《数据结构与抽象:Java语言描述(原书第4版)》一练习

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. H ...

  8. 资料 | O‘Reilly精品图书系列:算法精解 C 语言描述 (简体中文)

    下载地址:资料 | O'Reilly精品图书系列:算法精解 C 语言描述 (简体中文) 内容简介 · · · · · · 本书是数据结构和算法领域的经典之作,十余年来,畅销不衰! 全书共分为三部分:第 ...

  9. 《数据结构与抽象:Java语言描述(原书第4版)》一JI2.3 抛出异常

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. H ...

最新文章

  1. Automatically highlight current page in menu via Javascript
  2. Spring IoC是如何进行依赖注入的
  3. linux 上oracle安装
  4. java中子类对父类中的私有变量和私有方法有拥有权无使用权
  5. Ubuntu16.04安装CDH
  6. Framework7 4.1.0 发布,全功能 HTML 框架
  7. mysql画事实表_sql生成事实表数据库
  8. python mysql autocommit_MySQLdb autocommit的坑
  9. CIO应用商业智能技术系统的重构思考
  10. java bufferedrandomaccessfile_java 读写操作大文件 BufferedReader和RandomAccessFile
  11. Jupyter Notebook Virtualenv 添加 卸载环境
  12. 数据库设计(一)——数据库设计
  13. 小米格式化fastboot_小米fastboot刷机教程
  14. 安装到到setup support files时,SQL2008安装程序自动消失掉。
  15. 网络存储服务器dsm系统,群晖nas网络存储器常用解决方案
  16. QNX4系统启动过程
  17. 常州网站服务器_常州云主机
  18. 传输层 TCP 拥塞控制(3):快速重传与快速恢复
  19. NewStarCTF 公开赛赛道 第二周学习记录
  20. springboot_游戏虚拟物品交易平台

热门文章

  1. 如何制作普通光盘刻录360分钟的VCD影片
  2. VaxSIPUserAgentSDK_6.8[VaxVoIP SIP 电话]
  3. 服务器打开 显示屏不显示,服务器显示屏不显示
  4. SPASS多元统计分析在无人机航线精度方面的综合评价
  5. 利用栈和递归实现进制转换——数据结构实验报告
  6. 安监在线巡查指挥系统
  7. 热议:高数、线代应该成为计算机专业学习的重心吗?
  8. 数据库里面的一些专业词汇 英中对照
  9. 一步一步教你用Python爬虫框架Scrapy下载Pdf文件
  10. [3D数学基础:图形与游戏开发]读书笔记 第9章(矩阵的更多知识、行列式、逆、正交矩阵、4x4齐次矩阵)未完待续