RHZ'S BLOG | 个人分享

  • 首页
  • 笔记
  • 小日常
  • 音乐
  • 读书
  • 软件分享
C/C++
C/C++

D-oj|在非递减有序表中删除多余重复元素 题目编号:1128

有序表数据元素为整型,输入非递减有序表中各元素(不用排序,输入即有序),将表中多余重复元素删除,并将表输出。 输入描述 先输入非递减有序表中元素个数n; 再输入n个整数元素,以空格隔开,注意,按有序方式输入; 输出描述 输出删除多余重复数据元素后的有序表,元素之间以空格隔开 输入样例 10 1 1 1 2 2 2 2 3 3 4 输出样例 1 2 3 4 代码: #include <iostream> using namespace std; class seqList{ public: seqList…

2022年11月15日 0条评论 105点热度 1人点赞 RHZ 阅读全文
C/C++

D-oj|使用邻接矩阵实现有向图最短路径Dijkstra算法 题目编号:1136

用邻接矩阵存储有向图,实现最短路径Dijkstra算法,图中边的权值为整型,顶点个数少于10个。 部分代码提示: #include <iostream> #include <string> using namespace std; const int MaxSize = 10; const int INF = 32767; class MGraph { public: MGraph(char a[], int n, int e); void Dijkstra(); private: char…

2022年11月6日 0条评论 112点热度 0人点赞 RHZ 阅读全文
C/C++

D-oj|使用邻接表实现AOV网的拓扑排序算法 题目编号:1137

用邻接表存储有向图,在顶点表中增加入度域,使用队列存储入度为零的顶点编号,实现AOV网的拓扑排序算法,并输出拓扑序列,顶点个数少于20个。 部分提示代码: #include <iostream> using namespace std; struct Arcnode { int adjvex; Arcnode *next; }; struct Vertexnode { int in; char vertex; Arcnode *firstedge; }; const int Maxsize = 20; …

2022年11月6日 0条评论 114点热度 1人点赞 RHZ 阅读全文
C/C++

D-oj|二叉树的基本操作 题目编号:462

** 设计二叉树类,能够对二叉树进行先序、中序、后序和层序遍历,遍历的操作为输出结点的值,设计主函数,输入一棵二叉树,按先序、中序、后序、层序的遍历顺序输出结点的值。二叉树的结点数不超过20。 ** 输入描述 输入数据只有一组, 二叉树的结点均为一个数字, 数据为0代表当前结点为空。输入结点的值按照二叉树的先序遍历顺序, 比如输入: 1 2 4 0 0 5 0 0 3 0 6 0 0 ,0表示空,输入的数字之间由空格分隔。 输出描述 输出先序、中序、后序和层序遍历二叉树得到的序列,各占一行,同一行的数字之间由空格分…

2022年10月23日 0条评论 132点热度 1人点赞 RHZ 阅读全文
C/C++

D-oj|求二叉树的深度 题目编号:376

采用先序法建立一棵二叉树,设计求该二叉树的深度,二叉树的数据域类型为字符型,扩展二叉树的叶子结点用‘#’表示,要求可以求多棵二叉树的深度,当二叉树的深度为0时程序结束。 输入描述 循环输入多棵扩展二叉树的先序遍历序列,每棵树占一行,以回车结束,每棵二叉树中结点之间以空格隔开 输出描述 输出各二叉树的深度,每次输出后面都换行 输入样例 输出样例 解题思路: 遍历二叉树两支,lnum表示左半支的最深处,rnum表示右半支的最深处,最后比较lnum和rnum输出最大值,即为二叉树深度。 代码: 完整代码:

2022年10月22日 1条评论 160点热度 0人点赞 RHZ 阅读全文
C/C++

带多个参数的函数模板|C++

函数模板 函数模板还可以处理多个通用数据类型。 使用逗号分隔需定义的数据类型。 让我们来创建一个包含多种不同数据类型的参数(一个int和一个double)的函数,然后打印一个较小的值。 正如你所看到的,这个模板声明了两个不同的通用数据类型T和U. 现在我们可以继续我们的函数声明:  (a < b ? a : b)三元运算符用法,检查a<b,如果条件成立返回a,否则返回b 用两个参数来声明一个函数模板small(),然后返回一个较小的参数。参数分别是模板类型“F”和“S”。 在main…

2022年9月24日 1条评论 213点热度 1人点赞 RHZ 阅读全文
C/C++

函数模板|C++

函数模板 使用模板的目的就是能够让程序员编写与类型无关的代码。比如编写了一个交换两个整型int 类型的swap函数,这个函数就只能实现int 型,对double,字符这些类型无法实现,要实现这些类型的交换就要重新编写另一个swap函数。使用模板的目的就是要让这程序的实现与类型无关,比如一个swap模板函数,即可以实现int 型,又可以实现double型的交换。模板可以应用于函数和类。 函数和类有助于使程序更易于编写,更安全,更易于维护。 然而,虽然函数和类确实具有所有这些优点,但在某些情况下,它们也可能受到C++规…

2022年9月24日 1条评论 192点热度 0人点赞 RHZ 阅读全文
C/C++

抽象类|C++

抽象函数 抽象函数也可以在基类中实现。 现在,当你创建一个Role指针,并调用attack()函数时,编译器会调用该指针指向的对应于该对象类型的函数: 纯虚函数 在某些情况下,你希望在一个基类中包含一个抽象函数,以便它可以在派生类中被重新定义以适应该类的对象,但是没有有意义的定义给基类中的函数类。 没有定义的抽象成员函数被称为纯虚函数。他们指定派生类自己定义该函数。 语法是用= 0(一个等号和一个零)替换它们的定义: 一个纯虚函数基本上定义了派生类将自己去定义的那个函数。 从具有纯虚拟函数的类继承的每个派…

2022年9月17日 2条评论 184点热度 0人点赞 RHZ 阅读全文
C/C++

抽象函数|C++

前几节的例子演示了派生类与基类指针的使用方法。接下来我们接着之前游戏的例子,我们的每一个角色都有一个attack()函数。 为了能够让Role指针为每一个派生类提供调用attack()函数,我们需要在基类将函数声明成抽象函数。 在基类中声明一个抽象函数,在派生类中使用相应的函数,多态允许使用Role指针来调用派生类的函数。 每个派生类将覆盖attack()函数并有一个单独的实现:  通过关键字virtual可以将基类的函数声明成抽象函数。 现在,我们可以使用Role指针来调用attack()函数。 由于a…

2022年9月17日 2条评论 180点热度 0人点赞 RHZ 阅读全文
C/C++

多态|C++

多态 多态按字面的意思就是多种形态。 当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。 C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。  简单地说,多态意味着单个函数可以有多个不同的实现。 接下来我们将用例子来更清晰的了解多态。 假设我们现在要制作一个简单的游戏,游戏需要先创建一个角色,角色可以选择很多种不同的职业:法师,战士,射手等。但是这些职业有一个共同的功能就是攻击。不过由于职业性质的不同攻击的方式也会不一样,在这种情况下,多态允许在不同的对象上调用相…

2022年9月17日 2条评论 215点热度 0人点赞 RHZ 阅读全文
12345
归档
  • 2023年2月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年8月
  • 2021年7月

COPYRIGHT © 2022 RHZ的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2022008933号-1