- 博客(32)
- 收藏
- 关注
原创 学习第三阶段小总结之继承多态
继承与多态继承定义:在已有类的基础上创建新类的过程。语法形式:class 派生类名:基类名表{数据成员和成员函数声明};派生类的生成过程派生类的生成过程经历了三个步骤:吸收基类成员(全部吸收(构造、析构除外),但不一定可见)改造基类成员添加派生类新成员定义派生类对象时,只是复制基类的空间但是没有赋值重名成员基类的初始化:派生类构造函数 ( 变元表 ) : 基类 ( 变元表 ) , 对象成员1( 变元表 )… 对象成员n ( 变元表 ){// 派生类新增成员
2020-05-21 20:30:22
257
原创 学习第二阶段小总结之STL
知识串联及知识点细节例题与技巧分析、细节处理基础类:读者最大借书量、最长借书时间(按天计算)。这两个都是类成员看到类成员的时候很茫然,老师上课解释了一番才晓得指的static,就讲到的运用。class JC{ private: static int MaxMany; static int MaxDay; public: JC(){} ~JC(){} stati...
2020-04-28 21:51:43
231
原创 学习第一阶段小总结
知识串联及知识点细节递归结构体结构体变量特点:1>结构体变量的整体进行操作2>结构体变量的成员进行操作3>结构体变量初始化近似于数组标准库string头文件#include<string>1> getline()函数遇回车结束string line;while(getline(cin,line)) cout<<line...
2020-04-06 15:42:05
267
原创 简易通讯录【初版】【无深复制】
设计并实现简单通讯录系统1.定义描述联系人信息的类(数据类)数据成员:身份证号(常成员)、姓名、手机号(用字符串数组,可能不止一个)、QQ号、微信号、住址;成员函数:构造函数若干、get/set函数、显示函数。2.定义功能实现类(操作类)数据成员:联系人数组(链表也可)、联系人数量、数组容量;成员函数:构造函数(完成对本类数据成员的初始化);增加联系人(在尾部增加);按身份证号...
2020-03-30 19:12:10
277
原创 动态数组类【例】
定义一元素为整数的动态数组类,并在主函数中调用各个功能:数据成员:指向元素首地址的指针(用于存储动态申请的数组空间)、当前数组的容量、当前元素的个数;成员函数:带参/无参构造函数(无参的动态申请10个元素空间并改变当前数组的容量、当前元素的个数值;带参的按参数处理);在尾部增加一元素;修改指定位置上的元素值;查询指定数据的元素是否存在;输出所有数组中的元素; 增加数组容量(动态申请...
2020-03-30 19:08:26
1562
原创 文件结构“图”
题目在计算机上看到文件系统的结构通常很有用。Microsoft Windows上面的"explorer"程序就是这样的一个例子。但是在有图形界面之前,没有图形化的表示方法的,那时候最好的方式是把目录和文件的结构显示成一个"图"的样子,而且使用缩排的形式来表示目录的结构。比如:ROOT| dir1| file1| file2| file3| d...
2020-03-04 17:12:08
554
原创 递归总结
典型递归例题斐波那契数列int ff(int k){ if(k==1||k==2) return 1; else return ff(k-1)+ff(k-2);}最大公约数int gcd(int x,int y){ if(y==0) return x; else return gcd(y,x%y);}Pell数列long long w[1000010]; /...
2020-03-02 21:03:40
74
原创 查找与排序——排序
排序排序的基本概念排序:给定一组记录的集合{r1, r2, ……, rn},其相应的关键码分别为{k1, k2, ……, kn},排序是将这些记录排列成顺序为{rs1, rs2, ……, rsn}的一个序列,使得相应的关键码满足ks1≤ks2≤……≤ksn(称为升序)或ks1≥ks2≥……≥ksn(称为降序)。正序:待排序序列中的记录已按关键码排好序。逆序(反序):待排序序列中记录的...
2019-12-30 11:27:44
133
原创 查找与排序——查找
查找基本概念列表:由同一类型的数据元素组成的集合。关键码:数据元素中的某个数据项,可以标识列表中的一个或一组数据元素。键值:关键码的值。主关键码:可以唯一地标识一个记录的关键码。次关键码:不能唯一地标识一个记录的关键码。查找 :在具有相同类型的记录构成的集合中找出满足给定条件的记录。查找的结果 :若在查找集合中找到了与给定值相匹配的记录,则称查找成功;否则,称查找失败。静态查找 ...
2019-12-30 10:18:29
164
原创 图的最短路径
图的最短路径两种:Dijkstra求单源最短路Floyd算法求任意两点的最短路Dijkstra#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<queue>using namespace std;const i...
2019-12-30 09:14:47
84
原创 第六章图
图的基本概念图的定义:图是由顶点的有穷集合和顶点之间的边组成。通常记为G<V ,E>,V是点的集合,E是边的集合。边、图的有向无向:如果顶点vi与vj之间的边没有方向,则称这条边为无向边,用无序偶对(Vi,Vj)。如果图任意两个顶点之间都是无向边,则称为无向图。若顶点Vi与Vj之间有方向,则称这条边为有向边。有有序偶对< Vi,Vj>表示。如果图任意两顶点之间都是...
2019-12-02 20:54:51
247
原创 二叉树的存储结构及实现
顺序存储二叉树的顺序存储结构就是用一维数组存储二叉树中的结点,并且结点的存储位置(下标)应能体现结点之间的逻辑关系——父子关系。完全二叉树和满二叉树中结点的序号可以唯一地反映出结点之间的逻辑关系 。前序遍历void Preorder(int root, char data[]){ if(data[root]!='\0'){ cout<<data[root] ; ...
2019-12-02 20:18:46
495
原创 第五章树和二叉树
树的基本概念结点的度:结点所拥有的子树的个数。树的度:树中各结点度的最大值。叶子结点:度为0的结点,也称为终端结点。分支结点:度不为0的结点,也称为非终端结点。结点所在层数:根结点的层数为1;对其余任何结点,若某结点在第k层,则其孩子结点在第k+1层。树的深度:树中所有结点的最大层数,也称高度。层序编号:将树中结点按照从上层到下层、同层从左到右的次序依次给他们编以从1开始的连续自然数...
2019-12-02 19:44:24
80
原创 第四章字符串和多维数组
字符串:串的逻辑结构:串:零个或多个字符组成的有限序列。串长度:串中所包含的字符个数。空串:长度为0的串,记为:" “。非空串通常记为:S=” s1 s2 …… sn "其中:S是串名,双引号是定界符,双引号引起来的部分是串值 ,si(1≤i≤n)是一个任意字符。子串:串中任意个连续的字符组成的子序列。主串:包含子串的串。子串的位置:子串的第一个字符在主串中的序号。串的存储结...
2019-11-12 20:15:35
159
原创 第三章栈和队列
在此基础上 https://blog.csdn.net/gny1106/article/details/88375403 补充;栈:队列:
2019-11-12 19:18:56
83
原创 链表
定义:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。特点:用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。单链表:结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置)template <typename T>struct Node { T data; ...
2019-11-09 20:07:20
67
原创 顺序表
定义:顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序结构:将表中元素一个接一个的存入一组连续的存储单元中。const int M=100;t...
2019-11-09 18:53:18
86
原创 数据结构第二章线性表
线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。数据元素是一个抽象的符号,其具体含义在不同的情况下一般不同。特征:1.集合中必存在唯一的一个"第一元素"。2.集合中必存在唯一的一个 “最后元素” 。3.除最后一个元素之外,均有唯一的后继(后件)。4.除第一个元素之外,均有唯一的前驱(前...
2019-11-09 18:19:00
212
原创 数据结构1
大二开学后的第一篇博客。大体整理了一下数据结构内容,也有一些小的知识点。一/分为线性结构(linear structure),树形结构(tree structure),图结构(graph structure),集合(set)二/顺序存储(紧凑存储)——一维数组三/数据结构:相互之间存在一定关系的数据的集合(数据及其元素之间相互关系的表示)四/逻辑结构存储结构(元素及其关系都要存...
2019-09-23 00:32:31
104
原创 图论专题A
看一眼题目,求商店1到赛场n的最短距离,第一感觉Floyd,看一眼数据,100以内,OK安排上。#include <。iostream>(方便看,加。)#include <。iomanip>using namespace std;const int MAX = 99999999;int e[101][101];int cs;int main(){int m...
2019-05-21 23:17:16
104
原创 关于搜索
搜索可以说是我所学过的所有算法里用的最熟练的了。我们高中时流行一个词,叫暴力少年,说的就是我。各种各样的算法接触的很多但用的最熟永远都是搜索,bfs dfs都要很熟练。因为几乎所有的题都可以用搜索来做,虽然有些会爆,但noip是过点得分,对于搜索这种万能算法简直是方便的不得了。我记着我第一次学搜索是马走日的题,bfs dfs 均有解法;其次是八皇后,洛谷里都还存着我的代码,就不放了。今晚做题做...
2019-04-18 00:24:02
180
原创 dp大佬们的博客集合
看了不少博客,发现大佬们的博客都是简单的知识总结然后是大量例题及题解,也算是明白了解题数量是必不可收的。先看背包dphttps://blog.csdn.net/Hhaile/article/details/9621261https://blog.csdn.net/wumuzi520/article/category/942383花了整整两三晚也仅仅只看了01背包完全背包和多重背包三个专项,...
2019-04-14 00:13:52
138
原创 区间dp
区间dp:是指在一段区间上的动态规划。【分治思想】它既要满足dp问题的最优子结构和无后效性外,还应该符合在区间上操作的特点,即对区间进行合并操作,抑或是单个元素(小区间)跨区间进行操作(括号匹配,石子合并)。如果我们要得知一个大区间的情况,由于它必定是由从多个长度不一的小区间转移而来,我们可以通过求得多个小区间的情况,从而合并信息,得到大区间。模板:for (int len = 1; le...
2019-04-10 23:10:13
70
原创 背包问题总结
01背包01背包问题描述:有编号分别为a,b,c,d,e的五件物品,它们的重量分别是2,2,6,5,4,它们的价值分别是6,3,5,4,6,每件物品数量只有一个,现在给你个承重为10的背包,如何让背包里装入的物品具有最大的价值总和?动态规划的基本思路:将该问题转换成子问题,考虑五件物品在给定承重 C 的背包下最大价值为原问题。dp[i][j]=max(dp[i-1][j],dp[i-1][j...
2019-04-04 08:01:32
585
原创 DP小总结
动态规划的两个重要性质:最优子结构性质和子问题重叠性质。最优子结构性质:如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质(即满足最优化原理)。最优子结构性质为动态规划算法解决问题提供了重要线索。子问题重叠性质:子问题重叠性质是指在用递归算法自顶向下对问题进行求解时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次。动态规划算法正是利用了这种子问题的重叠...
2019-03-30 23:04:22
136
原创 std之map总结
map属于关联容器,提供一对一的数据处理能力。内部是由红黑树实现的,具有自动排序能力。因此map内部的所有数据是有序的。一.插入操作在map中插入数据有三种方法:1.使用数组用数组方式插入数据2.insert函数插入pair数据3.insert插入value_type数据使用后两者插入数据,利用的是集合的唯一性,也就是说当map容器中已经有了所要插入的数据,则insert操作是插入不...
2019-03-23 23:21:34
382
原创 stl总结二
C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++ 标准模板库的核心包括以下三个组件:容器:容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。算法:算法作用于容器。它们提供了执行各种操作的方式,包括对...
2019-03-20 21:19:42
118
原创 贪心小剧场
关于贪心算法,也称贪婪算法,顾名思义是在当前状态下尽可能多的获得东西,不考虑之后的情况,也就是只求局部最优解,而局部最优解是否能成为全局最优解就不一定了,因此贪心法能解决的问题有限,在某些情况下,贪心法的确能取得最优解,但很多时候,其所求得的只是次优解,因此,判断一个问题用贪心法得到的局部最优解是否能成为全局最优解十分重要,在分析一个问题是,贪心法可以选择的判断标准有很多:如在背包问题中,是选取总...
2019-03-17 00:42:53
90
原创 stl例题心(tu)得(cao)
stl里q简直和合并果子差不多了,优先队列成堆即可。a的话开始想用贪心,但是看题越看脑子就越蹦出来并查集。还有一个模拟题,看题耗了我不少时间,老师给的课件例题也有,看着更清楚明白些了。包括之前老师讲的两个例题,之前一直卡的字符串一个stringstream流把我的代码解决了,然后头文件是sstream,记住了。之前全排列喜欢用dfs来解,现在next_permutation(begin,e...
2019-03-13 23:53:30
110
原创 知识总结之指针
指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。指针变量声明的一般形式为: type *var-name;type 是指针的基类型,它必须是一个有效的 C++ 数据类型,var-name 是指针变量的名称。用来声明指针的星号与乘法中使用的星号是相同的。但是,在这个语句中,星号是用来指定一个变量是指针。所...
2019-03-13 22:44:49
184
原创 stl部分总结1
栈(stack):先进后出头文件 #include定义 stack<data_type> stack_name操作empty()size()top()pop()push(data_type a)队列(queue):先进先出头文件 #include定义 queue<data_type> queue_name操作empty()size()front...
2019-03-10 10:22:52
99
原创 合并果子啦啦啦
今天洛谷打卡:中吉!看到群里发了贪心介绍,然后去洛谷码了最经典的合并果子。一开始的思路是输入结束后先sort初始排序,取最小的两个相加再插找到相应位置,删除空堆就好。然后用刚学的stl里优先队列也ok啦放代码int a[100000];int main(){int n,sum=0;cin>>n;for(int i=1;i<=n;i++){cin>>...
2019-03-09 22:51:04
369
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人