- 博客(41)
- 收藏
- 关注
原创 Matlab简单入门
文章目录Matlab简单入门一、数组的创建和运算1.1 数的算术运算1.2 数组的创建和运算1.2.1 数组的创建:1.2.2 矩阵的索引1.2.3 矩阵的变换1.2.4 常用获取数组信息的函数1.2.5 三维矩阵的创建1.2.6 数组/矩阵的算术运算1.2.7 数组/矩阵中的逻辑运算二、循环和向量化编程2.1 条件判断(if...else)2.2 while循环2.3 for循环三、Matlab常用命令Matlab简单入门Matlab工作界面一、数组的创建和运算1.1 数的算术运算运算符:
2022-02-26 20:48:52
888
原创 数据结构笔记九——各种排序方法(C++)
介绍了常用的内排序,包括插入排序、选择排序、交换排序、归并排序。具体使用哪种排序方法取决于待排序数据的规模和原来的次序。
2021-12-27 23:40:59
1345
1
原创 数据结构笔记七——集合与静态查找
文章目录一、集合的基本概念1、集合的特征2、集合元素的类型3、集合的主要运算二、查找的基本概念三、静态表的查找1. 无序表的查找2. 有序表的查找2.1 顺序查找2.2 二分查找2.3 插值查找2.4 分块查找四、总结一、集合的基本概念1、集合的特征集合具有无序性,集合中的数据元素除了属于同一集合之外,没有任何逻辑关系。集合具有互异性,在集合中,每个数据元素有一个区别于其他元素的唯一标识,通常称为键值或关键字值2、集合元素的类型以学生信息集合为例,每一个元素是一个学生的相关数据,可能包含很多
2021-12-14 00:30:01
927
原创 数据结构笔记六_优先队列(C++实现)
目录基本的优先级队列优先级队列的简单实现二叉堆二叉堆的存储基于二叉堆的优先级序列队列基本操作:优先级队列的定义优先级队列基本操作的实现代码总结及测试基本的优先级队列节点之间关系由节点的优先级决定,不是由入队的先后次序决定。优先级搞的先出队,优先级低的后出队。这样的队列称为优先级队列或优先队列。优先级队列的简单实现两种方法:入队时,按照优先级在队列中寻找合适的位置,将新入队的元素插入在此位置。出队操作的实现不变入队时间复杂度:O(n)O(n)O(n)出队时间复杂度:O(1)O(1)O(1)入
2021-12-10 02:30:07
1945
原创 哈夫曼树与哈夫曼编码(c++实现)
哈夫曼树与哈夫曼编码一、字符的机内表示二、 哈夫曼树的概念三、 哈夫曼树的理论实现四、 哈夫曼树的代码实现理论设计代码实现代码总结和测试一、字符的机内表示在计算机中每个西文字符是用一个编码表示,大多数编码系统都采用等长编码,如ASCII编码例如在某段文本中用到了下列字符,括号中是它们出现的频率:a(10), e(15), i(12), s(3), t(4), 空格(13), 换行(1)。如采用定长编码,7个不同的字符至少要用3位编码。下图给出了一种编码对应方法:上述编码形式可以对应下面的二叉树,
2021-11-30 00:54:56
6585
原创 数据结构笔记五_树(c++超详细版)
目录树1、树的概念1.1 树的逻辑结构和基本运算1.1.1 树的定义1.1.2 树的常见基本操作1.2 树的物理结构2、二叉树2.1 二叉树的概念2.1.1 二叉树的定义2.1.2 二叉树的基本形态2.1.2.1 基本单元2.1.2.2 满二叉树2.1.2.3 完全二叉树2.2 二叉树的性质2.3 二叉树的基本运算2.4 二叉树的存储实现2.4.1 二叉树的顺序结构2.4.2 二叉树的链式结构2.4.3 二叉树类引入2.5 二叉树类的实现2.5.1 创建一棵树2.5.2 二叉树的遍历2.5.3 求规模操作的
2021-11-14 12:06:06
3589
原创 数据结构笔记四_队列(C++)
目录队列一、队列的逻辑结构1. 队列的概念2. 队列的基本操作队列类的抽象类二、队列的物理结构1. 队列的顺序结构(1) 顺序存储的三种方式介绍(2)循环队列类的声明三、队列的实现四、队列的应用队列一、队列的逻辑结构1. 队列的概念越早到达越早离开,先进先出。例如:银行储蓄柜前排队,计算机打印管理器中对打印队列的管理。2. 队列的基本操作结合生活实际,队列的基本操作如下:构造类创建队列create():创建一个空的队列属性类判断队空isEmpty(): 空,返回tr
2021-10-29 00:40:33
478
原创 数据结构笔记三_栈(C++)
栈目录栈一、栈的逻辑结构1. 栈的概念2. 相关概念3. 栈的运算二、 栈的物理结构1.栈的顺序结构2. 栈的链式结构三、栈类的实现1. 栈的顺序结构实现实现代码性能分析2.栈的链式结构实现实现代码性能分析四、栈的应用1. 栈类的测试代码总结代码运行结果一、栈的逻辑结构1. 栈的概念后进先出或先进后出的线性结构,最晚到达栈的节点最先被删除。以取放乒乓球为例:2. 相关概念栈底(bottom): 结构的首部(节点最早到达的部分)栈顶(top): 结构的尾部(节点最晚到达的地方)出栈(P
2021-10-19 00:59:50
1042
2
原创 数据结构笔记二_线性表的链式存储结构(C++)
线性表线性表的基本定义和顺序存储的实现见上一篇博客:https://blog.csdn.net/weixin_51352359/article/details/120497500线性表的链式存储结构线性表的抽象类首先依据线性表要实现的功能,定义线性表的类模板即父类:template<class elemType>class list {public: //对于属性类的函数,因其并不改变原数组or链表的值,在后面加const //可以达到保护隐含this指针以及供常对象使用的目的
2021-10-17 09:24:21
514
原创 数据结构笔记一_线性表的顺序存储结构(C++)
线性表一、逻辑结构及基本运算1.线性表的概念线性表是N个具有相同特征的节点A0,A1,⋯ ,AN−1A_0,A_1, \cdots ,A_{N-1}A0,A1,⋯,AN−1构成的集合。在这个集合中,除了A0A_0A0和AN−1A_{N-1}AN−1外,每个元素都有直接唯一的前驱和后继。2. 表的基本操作:构造类:构造出表结构属性类:只观察不修改求线性表的长度搜索某个元素是否在线性表中出现访问线性表的第i个元素数据操纵类:对数据进行改变在第i个位置插入一个元素删
2021-09-27 20:22:34
425
原创 异常处理机制
异常处理机制判断数组是否下标越界代码清单://异常处理机制//数组出界问题# include<iostream>using namespace std;//用户定义错误类型class errType1{};class errType2{};//函数模板template<class T>T get(T a[], int n, int i) { if (i < 0) throw errType1();//调用errType1的默认构造函数,throw不
2021-09-26 21:21:45
76
原创 面向对象程序设计实例_有理数类的运算
面向对象程序设计实例_有理数类的运算题目: 试定义一个有理数类,该类能提供有理数的加和乘运算分析:设计一个类需要考虑两方面的问题:设计数据成员:保存一个有理数即保存它的分子和分母两个整数,但要注意化成最简形式设计成员函数:加减乘除运算的实现,用户可以调用,需设计为共有的其中需要注意有理数要求是最简形式,如果有时用户给出的不是最简形式,则必须化简,使其成为最简形式。化简的工作在许多地方都需要用到,而且是一个独立的功能,可以将其写成一个函数。由于化简是类内部的工作,有理数的用户不需要调用,这
2021-09-25 17:56:13
427
原创 单链表_约瑟夫环的解决(c++)
单链表链表的概念链表是一种常用的数据结构,通常用来存储一组同类数据。它与数组最大的不同在于其可以动态的进行内存分配,在需要增加一个元素时,动态的为它申请存储空间,但这样便无法保证元素是连续存储的,链表利用指向下一个节点的指针解决了这个问题。下图给出了最简单的链表——单链表的结构。链表有各种形式,除了单链表外还有双链表,循环链表等。图示如下:下面我们来讨论单链表。单链表的存储每个节点由两部分组成:数据元素本身和指向下一节点的指针。struct linkNode { datatype
2021-09-25 16:46:22
2600
3
原创 结构体应用示例——点操作函数
对平面上的点的操作的函数及应用题目: 点的常用操作包括设置点的位置,获取点的x,y坐标,显示点的位置,计算两个点的距离。试定义点类型并实现这些函数。代码清单:# include<iostream># include<cmath>using namespace std;//创建结构体struct pointT { double x, y;};//函数声明void setPoint(double x, double y, pointT& p);//设定
2021-09-25 15:01:31
353
原创 算法优化示例_最大连续子序列和的求解问题(c++)
算法优化示例_最大连续子序列问题问题描述:给定(可能是负的)整数序列A1,A2,A3,⋯,ANA_1,A_2,A_3,\cdots,A_NA1,A2,A3,⋯,AN,寻找并标识∑k=ijAk\sum_{k=i}^{j}A_k∑k=ijAk的值为最大的序列。(如果所有的整数都是负的,那么最大连续子序列的和为0)O(N3)O(N^3)O(N3)算法——枚举法最简单也是最容易想到的算法就是直接枚举一个个子序列,从中找到和值最大的。代码如下://最大连续子序列和的O(n^3)算法#incl
2021-09-23 09:04:31
872
原创 递归函数有关问题(C++) 第一期
递归函数的应用调用自身的函数成为递归函数,典型的递归函数的函数体符合如下范例if(测试终止的条件) renturn (不需要递归的简单解决方案);else return(包括调用同一函数的递归解决方案)1.计算nnn的阶乘n!n!n!递归公式如下:n!={1(n=0)(n−1)!×n(n>0)n!=\left\{\begin{aligned}&1&(n=0)\\&(n-1)! \times n&(n>0)\\\end{aligned}\
2021-09-06 21:25:38
137
原创 行列式的计算(c++)——公式法(5阶)和递推法(n阶)
行列式的计算行列式的众多正经的不正经的计算方法就属线性代数的内容了,这里不过多讨论,主要介绍代码中会用到的两种:公式计算行列式值的计算公式为∣a11a12⋯a1na21a22⋯a2n⋮⋮⋯⋮an1an2⋯ann∣=∑p1p2⋯pn(−1)τ(p1p2⋯pn)a1p1a2p2⋯anpn\left| \begin{array}{cccc}a_{11} & a_{12} & \cdots & a_{1 n} \\a_{21} & a_{22} & \cdot
2021-09-05 18:15:11
5570
原创 二维数组的应用——矩阵乘法(c++)
矩阵乘法输入两个矩阵A、 B,输出矩阵C=A*B#include <iostream>using namespace std;#define MAX_SIZE 10//矩阵的最大规模int main(){ int a[MAX_SIZE][MAX_SIZE], b[MAX_SIZE][MAX_SIZE], c[MAX_SIZE][MAX_SIZE]; int i, j, k, NumOfRowA, NumOfColA, NumOfColB; //输
2021-02-05 21:54:59
2305
原创 一维数组的定义(c++)
数组的定义1.一维数组的定义类型名 数组名[元素个数];double array[10];类型名:每个数组元素的数据类型数组名:储存该数组的变量名数组的元素个数必须是编译时的常量#define len1 10; const int len2 = 5; double array1[len1] , array2[len2]; //如果采用c++11,len2更准确的定义应该是 //constexpr int len2 = 5; //constexpr特指编译期常量但如果用int
2021-02-05 21:29:46
1707
原创 基本排序_直接选择和冒泡排序(c++)
排序1. 直接选择排序法如果要将数据按照非递减序排列,一般的过程是先找到整个数组中最小的元素,并把它放在数组的起始位置,然后在剩下的元素中找最小的并把它放在第二个位置上,对整个数组继续这个过程,最后将得到按从小到大顺序排列的数组。#include <iostream>#include <cmath>using namespace std;int main(){ int lh, rh, k, tmp; int array[] = { 2,5,1,9,10
2021-02-05 21:26:30
136
原创 查找(c++)_顺序、递归
查找1.顺序查找在一批整型数据2、 3 、1、 7、5、 8、 9、 0、 4、 6中查找某个元素x是否出现#include <iostream>#include <cmath>using namespace std;int main(){ int x,k; int array[] = { 2,3,1,7,5,8,9,0,4,6 }; cout << "请输入要查找的数据:"; cin >> x; f
2021-02-05 20:20:57
266
原创 定积分+π的近似求法(c++)
1. 定积分定积分的物理意义是某个函数与x轴围成的区域的面积。计算定积分可以将其分解成一连串小矩形,计算各小矩形面积并求和。函数为 y=x2+5∗x+1x^2 +5*x+1x2+5∗x+1#include <iostream>using namespace std;int main(){ double x, delt, a, b, s = 0, h; cout << "请输入积分区域:"; cin >> a >> b;
2021-02-04 20:59:37
1533
1
原创 输出各种形状的三角形(c++)
输出各种形状的三角形代码样例:#include <iostream>using namespace std;int main(){ int n,i,k; cout << "请输入行数:"; cin >> n; for (i = 1; i <= n; ++i) { for (k = 1; k <= i; ++k) cout << "*";
2021-02-04 19:18:29
3139
原创 斐波那契数列相关求解代码(C++)
斐波那契数列:指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…这个数列从第3项开始,每一项都等于前两项之和1.顺序显示F0—F15#include <iostream>using namespace std;int main(){ int f0 = 0, f1 = 1, f2; cout
2021-02-04 18:33:43
924
原创 在数字中插入空格(c++)
题目:提示用户输入一个整数,然后输出这个整数的每一位数字,数字之间插一个空格。例如输入12345,输出1 2 3 4 5 。分析:依次取出一个数的个位、十位、百位…是比较容易的,但是从最高位到最低位是有困难的。但是如果能知道整数的数量级就会比较简单#include <iostream>using namespace std;int main(){ int n,i; cout << "请输入一个整数:"; cin >> n; fo
2021-02-04 18:23:23
4741
原创 贪婪法实现不重复数字组成最大三位数
给定一组由不重复的数,例如5、6、2 、9 、4、 1,找出这几个数字所能组成的最大三位数三个阶段:找百位数:所有数中最大的找十位数:剩余所有数中最大的找个位数#include <iostream>using namespace std;int main(){ int num = 0, max = 10, current; for (int digit = 100; digit > 0; digit /= 10) { cur
2021-02-04 17:43:49
794
原创 达到一定精度问题——求方程根+平方根·(c++)
弦截法是一种求方程根的基本方法,在计算机编程中常用。他的思路是这样的:任取两个数x1、x2,求得对应的函数值f(x1)、f(x2)。如果两函数值同号,则重新取数,直到这两个函数值异号为止。连接(x1,f(x1))与(x2,f(x2))这两点形成的直线与x轴相交于一点x,求得对应的f(x),判断其与f(x1)、f(x2)中的哪个值同号。如f(x)与f(x1)同号,则f(x)为新的f(x1)。将新的f(x1)与f(x2)连接,如此循环直到f(x)小于某个确定的精度为止。编一程序,计算x3+2∗x2+5∗x−1
2021-02-04 16:17:01
733
原创 统计句子中各种字符的出现次数
输入一个句子(以句号结束),统计改句子中的元音字母数、辅音字母数、空格数、数字数及其他字符数while循环(字符)#include <iostream>using namespace std;int main(){ char ch; int numvowel = 0, numcons = 0, numspace = 0, numdigit = 0, numother = 0; cout << "请输入句子:"; cin.get(ch);
2021-02-04 16:08:16
418
原创 计算e的x次方(c++)
用无穷级数ex=1+x+x2/2!+x3/3!+...+xn/n!+...e^x =1 + x + x^2/2! + x^3/3! +...+ x^n/n! +...ex=1+x+x2/2!+x3/3!+...+xn/n!+...计算exe^xex的近似值,当xn/n!<0.000001x^n/n! < 0.000001xn/n!<0.000001时结束#include <iostream>using namespace std;int main(){ dou
2021-02-01 19:00:21
9111
1
原创 continue的用法示例(c++)——A、B、C的全排列
continue的用法示例(c++)——A、B、C的全排列continue的作用:跳出当前循环周期,回到循环控制行#include <iostream>using namespace std;int main(){ char ch1, ch2, ch3; for (ch1 = 'A'; ch1 <= 'C'; ++ch1) //第一个位置的值 for (ch2 = 'A'; ch2 <= 'C'; ++ch2)//第二个位置的值 if (ch1 =
2021-02-01 18:09:10
523
原创 检查输入是否为素数
检查输入的数是否为素数#include <iostream>using namespace std;int main(){ int num, k; cout << "请输入要检测的数:"; cin >> num; if (num == 2) //2是素数 { cout << num << "是素数\n"; return 0; } if (num % 2 == 0 || num == 1
2021-02-01 17:57:34
112
原创 交换两个变量的值
交换两个变量的值1.利用异或运算通过对a,b本身的操作实现#include<iostream>using namespace std;int main(){ int a, b; cin << a << b; a = a ^ b; b = b ^ a; a = a ^ b; cout << a << " " << b; return 0;}来解释一下叭,因为x^x=0 ,x^0=x,故上面第二个语句等价于b
2021-01-30 23:31:57
59
原创 三种不同类型的九九乘法表(c++)
打印九九乘法表1.九九对齐方阵#include <iostream>using namespace std;int main(){ int i, j; //循环语句的嵌套 for (int i = 1; i <= 9; ++i) { for (j = 1; j <= 9; ++j) { cout << i * j << '\t'; } cout << endl;//换行 } return 0;}运
2021-01-30 23:31:05
2415
原创 求输入整数的最大因子(c++)
求输入整数的最大因子#include <iostream>using namespace std;int main(){ int num,result = 1; cout << "请输入一个整数:"; cin >> num; for (int i = num / 2; i >= 1; --i) { if (num % i == 0) { result = i; break; } } //for (result = nu
2021-01-30 23:10:41
3829
原创 1到100的素数和(c++)
计算1-100的所有素数和#include <iostream>using namespace std;int main(){ int total = 2; for (int i = 3; i < 100; i+=2)//因为偶数除2之外都不是素数,so直接加2喽 { //判断i是否为素数 int n = 0;//统计可以被整除的个数,若为素数,n=2 for (int j = 1; j <= i; +
2021-01-30 22:58:39
5478
2
原创 考试成绩最高分、最低分、平均分(c++)_循环、数组、函数、指针
设计一统计某班级考试成绩中的最高分、最低分和平均分的程序#include <iostream>using namespace std;int main(){ int num, value, max, min, all;//num存放当前输入成绩 double ave; //变量的初始化 max = 0; min = 100; all = 0; cout << "请输入学生人数:"; cin >> n
2021-01-30 22:42:40
11918
原创 计算机自动出四则运算计算题(10以内)c++
计算机自动出四则运算计算题计算机中的随机数为伪随机数,也是通过某个固定的算法算出来的。并将上一次产生的随机数作为生成下一个随机数时的输入·。C++会指定一个默认值作为随机数的种子(初始值)。由于每次运行程序中给出的种子都是同一个数值,会造成每次产生的题目都是相同的。C++提供了设置种子的函数srand,允许在程序中设定随机数的种子。如何让每次选取的种子都不一样呢———把系统时间(time(NULL))作为种子!程序如下:#include <iostream>#include <c
2021-01-29 19:45:36
1393
1
原创 一元二次方程的解法
一元二次方程的解法(c++)#include <iostream>#include<cmath>using namespace std;int main(){ double a, b, c,dlt,x1,x2; cout << "请输入方程的三个系数:" << endl; cin >> a >> b >> c; dlt = b * b - 4 * a * c; x1 = (
2021-01-29 19:10:11
1674
原创 用位运算实现灯的状态控制
题目假设房间里有8盏灯,用计算机控制。每盏灯用一个二进制位表示,0表示关灯,1表示开灯。程序可以控制8盏灯的初始状态,可以将某一盏灯的状态反一反,即将原来开着的灯关掉或将原来关着的灯打开。#include <iostream>using namespace std;int main(){ int n1, n2, n3, n4, n5, n6, n7, n8, num, newstate; char flag = 0; cout << "请输入8盏灯的初始状态(0表示
2021-01-28 23:50:08
786
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人