算法学习笔记
对博主所学到的基本算法进行复现与总结,供大家参考。
C.L.R
这个作者很懒,什么都没留下…
展开
-
数据结构——图基础
一、图概述对图的描述有两个参数:点个数(vertex)与边数(edge)。若两节点间有边将二者相连,则称两点邻接(adjacency),点与该边成为关联(incidence)。图又分为有向图和无向图,若一张图中每条边都具有方向,则该图为有向图 ,否则是无向图。二、路径1.简单路径将每个节点均遍历一次的路径为简单路径:2.简单环路依次遍历每个节点并最终回到初始位置的路径为简单回路...原创 2020-03-13 17:43:03 · 559 阅读 · 0 评论 -
数据结构——图的搜索
该文章主要介绍两种常用的图搜索方式。一、广度优先搜索1.策略首先访问顶点s,之后访问所有s的邻接顶点,再访问s邻接顶点的邻接顶点…多次访问后,图中所有顶点均被访问一次,则遍历过程结束。该遍历方法类似于二叉树中的层次遍历。2.代码与层次遍历相似,图的广度优先遍历也使用队列作为辅助。template <typename Tv, typename Te>void Graph...原创 2020-03-13 17:15:06 · 1603 阅读 · 0 评论 -
数据结构——二叉树入门
一、树树与向量、列表等数据结构最大不同之处在于其不再是简单线性结构,但它兼顾了向量查找方便以及列表移动方便的优势,且可以直观表示出数据的层次关系,也成为了较为常用的基本数据结构。1.有根树当众多节点中有一个指定的根(root)则称该树为有根树2.有序树每个根下对应的分支有续的树成为有序树3.路径k + 1个节点通过k条边依次相连构成一调路径4.环路若一条路径首尾相连,则构成一...原创 2020-03-12 16:01:23 · 365 阅读 · 0 评论 -
数据结构——二叉树遍历
一、遍历按照某种特定的次序,访问树中各个节点,且每个节点恰好被访问一次的操作成为遍历。在二叉树这种半线性结构中,如何合理对其节点遍历是我们需要认真学习的地方。根据遍历顺序,有多种遍历策略。以节点本身被访问的次序分类,可分为先序(VLR)、中序(LVR)、后序(LRV)三种方式。二、先序遍历1.递归式最通俗易懂的表达方式为递归式,及查看完节点本身后依次对左右子节点递归调用自己,代码如下:...原创 2020-03-12 10:25:56 · 215 阅读 · 0 评论 -
数据结构——栈与队列
本文简要介绍了栈与队列的基本使用方法并列举了进制转换、括号匹配、逆波兰表达式等经典应用。一、栈栈也是一种存储多个数据的结构,其特点是只有一端开口,数据的访问与更改也只能从该段进行及后进先出!如下图所示,向栈中插入元素的操作成为push,反之成为pop。二、栈的接口函数函数名用途Stack()创造空栈push(x)顶端插入xpop()取出顶端元素...原创 2020-03-11 08:18:22 · 278 阅读 · 0 评论 -
浴谷刷题答案(五)——简单字符串
P1055 ISBN号码题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括99位数字、11位识别码和33位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如00代表英语;第一个分隔符-之后的三位数字代表出版社,例如670...原创 2020-02-27 16:01:23 · 934 阅读 · 0 评论 -
C++ premier plus 第六版 编程练习解答(第十章)
10.2//1.person.h#ifndef PERSON_H_#define PERSON_H_class Person{private: static const int LIMIT = 25; string lname; char fname[LLIMIT];public: Person(){lname = "";fname[0] = '\0';} Person(...原创 2020-02-21 16:59:34 · 213 阅读 · 0 评论 -
C++延时函数应用(为武汉加油)
在这里向大家介绍在C++中延时函数的编写及调用,并以逐行展开点阵显示的“武汉加油”字样作为演示。程序运行效果首先将实现效果展示如下:延时函数介绍简要介绍一下利用C++中<time.h>库完成函数延时功能,语句较为简单在此不做特殊说明。#include <time.h>void delay(int seconds){ clock_t start = clo...原创 2020-02-21 16:15:47 · 2166 阅读 · 3 评论 -
C++ premier plus 第六版 编程练习解答(第九章)
9.1//golf.h#ifndef GOLF_H_#define GOLF_H_const int Len = 40;struct golf{ char fullname[Len]; int handicap;};void setgolf(golf & g, const char * name, int hc);int setgolf(golf & g)...原创 2020-02-18 17:45:36 · 204 阅读 · 0 评论 -
C++ premier plus 第六版 编程练习解答(第七章)
1.编写一个程序,不断要求用户输入两个数,直到其中的一个为0。对于每两个数,程序将使用一个函数来计算它们的调和平均数,并将结果返回给main(),而后者将报告结果。调和平均数指的是倒数平均值的倒数,计算公式如下:调和平均数=2.0xy/(x+y)#include <iostream>double average(double a, double b);int main(voi...原创 2020-02-02 16:54:29 · 885 阅读 · 0 评论 -
浴谷刷题答案(四)——数组
P1046 陶陶摘苹果题目描述陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。代码#include <...原创 2020-01-24 15:47:34 · 3297 阅读 · 0 评论 -
浴谷刷题答案(三)——循环!循环!循环!
P1008 三连击题目描述将1,2,⋯,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。代码#include <iostream>int main(){ using namespace std; for (int i = 123; i <= 333; i++) { int j = 2 * i; ...原创 2020-01-24 15:36:46 · 831 阅读 · 0 评论 -
浴谷刷题答案(二)——顺序与分支
P1422 小玉家的电费题目描述夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了。小玉家今天收到了一份电费通知单。小玉看到上面写:据闽价电[2006]27号规定,月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行,月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行,月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行;小玉想自己验证一下,电费通知单...原创 2020-01-23 16:55:57 · 744 阅读 · 0 评论 -
浴谷刷题答案(一)——浴谷的第一个任务
作为算法小白,最近正慢慢刷浴谷的题目,将我自己的答案整理于此,欢迎大家参考以及提出宝贵意见。P1000 超级玛丽游戏题目描述超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。 ******** ************ ####....#. #..##...原创 2020-01-23 09:54:28 · 1439 阅读 · 2 评论 -
C++ premier plus 第六版 编程练习解答(第六章)
1.编写一个程序,读取键盘输入,知道遇到@符号为止,并回显输入(数字除外),同时转换大小写字符。#include <iostream>#include <cctype>int main(){ using namespace std; char ch; cin.get(ch); while (ch != '@') { if (!isdigit(ch))...原创 2020-01-20 16:12:59 · 557 阅读 · 0 评论 -
C++学习笔记(一)——cctype函数库整理
函数名称返回值isalnum( )若参数为字母或数字,函数返回trueisalpha( )若参数为字母,函数返回trueiscntrl( )若参数为控制字符,函数返回trueisdigit( )若参数为数字,函数返回trueisgraph( )若参数为除空格外字符,函数返回trueislower( )若参数为小写字母,函数返回true...原创 2020-01-19 16:36:57 · 303 阅读 · 0 评论 -
C++ premier plus 第六版 编程练习解答(第五章)
1.编写一个要求用户输入两个整数的程序。该程序将计算并输出这两个整数之间所有整数的和。#include <iostream>int main(){ using namespace std; int max,min,sum; sum = 0; cout << "MAX: "; cin >> max; cout << "MIN: ";...原创 2020-01-19 15:37:20 · 329 阅读 · 0 评论 -
C++ premier plus 第六版 编程练习解答(第四章)
1.编写一个C++程序,如下述输出示例所示的那样请求并显示信息备注:本题其实没必要使用结构体,重点在于使用cin.getline()函数。若直接使用cin(),则若first name输入中包含空格,空格后部分会被存入lastname变量。#include <iostream>struct message{ char firstname[20]; char lastnam...原创 2020-01-18 17:41:18 · 476 阅读 · 0 评论 -
C++ premier plus 第六版 编程练习解答(第三章)
1.编写一个小程序,要求用户使用一个整数指出自己的身高,然后将身高转换为英尺和英寸。该程序使用下划线字符来指示输入位置。另外,使用一个const符号常量来表示转换因子。#include<iostream>int main(){ using namespace std; const float Rate = 12.0; int inch; float feet; cout...原创 2020-01-16 23:24:28 · 481 阅读 · 0 评论 -
C++ premier plus 第六版 编程练习解答(第二章)
1.编写C++程序显示姓名及地址#include<iostream>int main(void){ using namespace std; cout << "name"; cout << endl; cout << "address"; cout << endl; return 0;}2.编写一个C++程序,它要...原创 2020-01-15 22:02:25 · 355 阅读 · 0 评论