自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 大二数据结构第八次总结----查找

查找1.查找的基本概念列表:由同一类型的数据元素组成的集合。关键码:数据元素中的某个数据项,可以标识列表中的一个或一组数据元素。键值:关键码的值。主关键码:可以唯一地标识一个记录的关键码。次关键码:不能唯一地标识一个记录的关键码。查找 :在具有相同类型的记录构成的集合中找...

2019-12-01 22:43:12 320

原创 大二数据结构第七次总结---图

图1.图的定义图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G=(V,E)其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。2.图的基本术语简单图:在图中,若不存在顶点到其自身的边,且同一条边不重复出现。邻接、依附...

2019-12-01 22:34:06 486

原创 大二数据结构第六次----树

树1.树的定义树:n(n≥0)个结点的有限集合。当n=0时,称为空树;任意一棵非空树满足以下条件:⑴ 有且仅有一个特定的称为根的结点;⑵ 当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的有限集合T1,T2,… ,Tm,其中每个集合又是一棵树,并...

2019-12-01 22:12:05 354

原创 大二数据结构第五次总结

第四章 字符串和多维数组 1.串 串:零个或多个字符组成的有限序列。串长度:串中所包含的字符个数。空串:长度为0的串,记为:" "。子串:串中任意个连续的字符组成的子序列。主串:包含子串的串。子串的位置:子串的第一个字符在主串中的序号2.串的存储结构顺序串:用数组来存储串中的字符序列链接串:用链接存储结构来存储串。3.模式匹配给定主串S="s1s2...

2019-11-04 09:59:06 175

原创 大二数据结构第四次总结

第三章 栈和队列1.栈:栈:限定仅在表尾进行插入和删除操作的线性表空栈:不含任何数据元素的栈。允许插入和删除的一端称为栈顶,另一端称为栈底。2.顺序栈的声明const int MAX_SIZE=100;template class seqStack{public:seqStack ( ) ;~seqStack ( );void Push (...

2019-11-03 15:39:08 174

原创 STL之栈的用法stack

头文件#includes.empty()//如果栈为空返回true,否则返回falses.size()//返回栈中元素的个数s.pop()//删除栈顶元素但不返回其值s.top()//返回栈顶的元素,但不删除该元素s.push(X)//在栈顶压入新元素 ,参数X为要压入的元素...

2019-10-29 09:35:10 275 1

原创 STL之中的队列queue

push(x)将x压入队列的末端pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值front()返回第一个元素(队顶元素)back()返回最后被压入的元素(队尾元素)empty()当队列为空时,返回truesize()返回队列的长度...

2019-10-29 09:31:26 66

原创 大二数据结构第三次总结

第二章 线性表1.顺序表代码实现:const int Maxsize=100;template class SeqList{ private:  T data[MaxSize]; // 存放数据元素的数组  int length; // 线性表的长度 public:  SeqList ( ) ;// 无参构造函数  SeqList ...

2019-10-28 09:49:55 195

原创 大二数据结构第二次总结

数据结构---模板 1.模板是对具有相同特性的函数或类的再抽象,模板是一种参数化的多态性工具。 2.所谓参数化多态性,是指将程序所处理的对象的类型参数化,使一段程序代码可以用于处理多种不同类型的对象。 3.采用模板编程,可以为各种逻辑功能相同而数据类型不同的程序提供一种代码共享的机制。 4.函数模板的定义:...

2019-10-09 15:31:42 117

原创 大二数据结构第一次总结

第一章总结 1. 程序=数据结构 + 算法 2. 对象=数据结构+算法,程序=对象+对象+...... 3.数据:是对客观事物的符号表示,在计算机科学中是指能输入到计算机并被计算机程序处理的符号的总称数据。 4.数据元素:是数据的基本单位,也可以称为结点,在计算机程序中通常作为一个整体进行考虑。 ...

2019-10-09 09:31:08 197

原创 关于时间类的重载小于号和重载==号

一、重载时间类小于号:bool operator<(const T​ime&t)const{if(year!=t.year)return year<​t.year;else if(month!=t.month)return month<t.month;elsereturn day<t.day;}注意重载小于号要有2个const,注意后面的con...

2019-06-26 22:37:07 992

原创 开发软件的基本心得

说真的当老师让我们写一篇关于开发软件的心得的博客时,我是懵的,因为不知道怎么写啊,虽然自己写过通讯录、图书管理系统,但和开发软件还有很大差距,自己还是个小菜菜,又有何脸面谈心得呢?后来我晚上睡觉前一想,也许真有点可以写的东西。具体如下:我觉得一个要想写软件或者系统,他首先要有扎实的基本功开发软件或者说是系统,我自己的步骤一般有四步:①构思②整理③打代码④测试寻找bug...

2019-06-21 16:17:21 136

原创 c++第8、9、10章总结

第8章 运算符重载1、operator后紧跟要重载的运算符,例如重载“+"运算符函数名字为operator+2、一个运算符被重载以后,它原先的含义不会改变,扔可以用。使用时系统会判断用这个运算符的重载还是原含义。即: 运算符重载不会改变内置类型表达式中的运算符含义,只有在至少一个操作数是用户自定义类型对象时,才有可能调用该类中重载的运算符。3、运算符函...

2019-06-20 11:24:12 141

原创 ACM课程报告

一、对课程的认识和自我感受

2019-06-04 10:15:05 184

原创 acm第二十三次图的遍历

一、深度优先与广度优先遍历  从图中某一顶点出发系统地访问图中所有顶点,使每个顶点恰好被访问一次,这种运算操作被称为图的遍历。为了避免重复访问某个顶点,可以设一个标志数组visited[i],未访问时值为false,访问一次后就改为true。  图的遍历分为深度优先遍历和广度优先遍历两种方法,两者的时间效率都是O(n*n)。1.深度优先遍历  深度优先遍历与深搜DFS相似,从一个点A出发,...

2019-05-25 22:47:40 185

原创 acm第二十二次图论算法基本概念

基本:一、什么是图?  很简单,点用边连起来就叫做图,严格意义上讲,图是一种数据结构,定义为:graph=(V,E)。V是一个非空有限集合,代表顶点(结点),E代表边的集合。二、图的一些定义(a)有向图:图的边有方向,只能按箭头方向从一点到另一点。((b)无向图:图的边没有方向,可以双向。三、图的一些基本概念结点的度:无向图中与结点相连的边的数目,称为结点的度。结点的入度:在有向图...

2019-05-22 23:32:52 115

原创 acm第二十一次堆

一、堆的定义堆结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个结点与数组中存放该结点中值的那个元素相对应二、堆的性质设数组A的长度为len,二叉树的结点个数为size,size≤len,则A[i]存储二叉树中编号为i的结点值(1≤i≤size),而A[size]以后的元素并不属于相应的堆,树的根为A[1],并且利用完全二叉树的性质,我们很容易求第i个结点的父结点(parent(i))...

2019-05-18 22:51:38 96

原创 acm第二十次二叉树

一、 二叉树定义二叉树是一种特殊的树型结构,它的度数为2的树。即二叉树的每个结点最多有两个子结点。每个结点的子结点分别称为左孩子、右孩子,它的两棵子树分别称为左子树、右子树。二、二叉树有5中基本形态:①空二叉树②仅有根节点的二叉树③右子树为空的二叉树④左右子树均非空的二叉树⑤左子树为空的二叉树三、二叉树术语前面引入的树的术语也基本适用于二叉树,但二叉树与树也有很多不同,如:首先二叉树的每...

2019-05-15 22:40:17 436

原创 acm第十九次树

一、树及二叉树1、树的概念----树的定义一棵树是由n(n>0)个元素组成的有限集合,其中:①每个元素称为结点(node);②有一个特定的结点,称为根结点或树根(root);③除根结点外,其余结点能分成m(m>=0)个互不相交的有限集合T0,T1,T2,……Tm-1。其中的每个子集又都是一棵树,这些集合称为这棵树的子树。2...

2019-05-11 23:01:06 95

原创 acm第十八次数据结构

其实这数据结构不是新的内容,里边的栈和队列我们在stl中也都了解过了,但是我们是根据函数库直接调用,而这次讲的数据结构,是具体的代码实现。 例如: 一:栈 一般的栈操作我们在stl中直接用push入栈,pop出站 而这次老师讲的多用具体的代码 #define n 100入栈操作void push(int s[],int *top,int *x)...

2019-05-08 23:08:06 113

原创 acm第十七次被遗忘的三分

最近的做的题都是二分,以为自己看懂了PPT就会了,结果a题给了一个下马威,没办法的我,求助了百度,研究半天也算一知半解,有了思路,后续又做了几个题。又到写博客的时候了,写写三分法吧。一、三分法定义当需要求某凸性或凹形函数的极值,通过函数本身表达式并不容易求解时,就可以用三分法不断逼近求解。二、三分法思想与二分法类似的是,三分法也先取下界(记作l)和上界(记作r)的中间值(记作midl)...

2019-05-04 23:10:52 124

原创 acm第十六次单调队列

单调队列一、单调队列:队列中元素之间的关系具有单调性,而且,队首和队尾都可以进行出队操作,只有队尾可以进行入队操作二、单调队列的常用操作如下:①插入:若新元素从队尾插入后会破坏单调性,则删除原来的队尾元素,直到插入后不再破坏单调性为止,再将其插入单调队列。②获取最优值:访问首尾元素。三、整理归纳单调队列的一般解题步骤:1、维护区间最值;2、...

2019-05-01 21:58:22 191

原创 acm第十五次新二分法

一、二分查找算法①简单定义:在一个单调有序的集合中查找元素,每次将集合分为左右两部分,判断解在哪个部分中并调整集合上下界,重复直到找到目标元素。②时间复杂度:O (logn),优于直接顺序查找O(n)③基本思想:二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x...

2019-04-27 23:02:42 96

原创 acm第十四次补充新学的知识和打代码的bug

老师大部分再讲搜索,已经写完2次的我不想在写了,emm…二分还没怎么看,所以先不写了,就说说老师上课讲的逻辑移位和按位运算吧,哦,还有写代码时自己遇到的bug。一、运行成功后乱码原因1、有变量没赋值 ,并且应用到了2、 在关键位置写错字母、数字、变量名。二、.逻辑移位操作对象: 二进制无符号数,例如像地址。(1)逻辑右移特点:高位补0,低位移出。符号:>>例:x&gt...

2019-04-24 23:04:20 95

原创 acm第十三次再说搜索

一、搜索分为广度和深度现在说说他们的模板代码①广度搜索可用队列来写,先进先出具体过程:1 每次取出队列首元素(初始状态),进行拓展2 然后把拓展所得到的可行状态都放到队列里面3 将初始状态删除4 一直进行以上三步直到队列为空。代码模板:While Not Queue.Empty ()Begin可加结束条件Tmp = Queue.Top ()从Tmp循环拓展下一个状态Nex...

2019-04-20 23:00:26 72

原创 acm第十二次深入了解递归和初识搜索

一、深入了解递归我在看例题时,每当看到一个递归实现, 总是难免陷入不停的验证之中,比如阶乘,求解Factorial(n)时,我总会情不自禁的发问,Factorial(n-1)可以求出正确的答案么?接着就会再用Factorial(n-2)去验证,,,不停地往下验证直到Factorial(0)。感觉很傻…但是我对递归的思路有点不适应,感觉和我们平时习惯的思维方式相反。我们习惯的思维是:已知Fact...

2019-04-17 23:13:25 113

原创 大一下学期c++第六章总结

一、类的定义1、类的基本思想是数据抽象和封装。2、类要实现数据抽象和封装,需要先定义一个抽象数据类型。3、抽象数据类型由两部分组成:一组数据和对这些数据的操作。4、c++定义抽象数据类型,最常见的方式是采用结构体加全局函数二、数据成员与成员函数1、结构体内的函数被称为成员函数。2、结构体中的数据被称为数据成员。3、结构体被称为类。4、结构体类型的变量被称为对象。三、数据成员的类...

2019-04-14 22:26:26 128

原创 acm第十一次递归函数

也没什么好写的,就简写递归函数一、递归1、递归算法:程序直接或间接调用自身的编程技巧称为递归算法 。2、递归函数:直接或间接调用自身的函数称为递归函数3、简述:它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。二、递归的基本思想1、分解问题:把一个不能或不好解决的大问题转化为一个或几个小问题,再把这些小问题进一步分解成更小的小问题,然后最小问题可以直接解决。...

2019-04-13 23:16:48 177

原创 acm第10次区间dp+做题新知识

最近好像也没有什么好写的,区间dp上次写了点,周一的时候老师又讲了,所以在此补充点新的理解吧,然后最后附上做题是自己不知道的新知识一、区间dp1、基础代码①、当求最小dp时//一般区间DP实现代码memset(dp, 0x3f, sizeof(dp));//初始化dp//0x3f在此表示一个很大很大的值for (int i = 1; i <= n; i++) //区间长度为1...

2019-04-10 23:07:25 109

原创 acm第九次区间dp+多重背包做题总结

一、区间dp1、所谓 区间DP主要是把一个大区间拆分成几个小区间,先求小区间的最优值,然后合并起来求大区间的最优值。2、基本分析步骤:①描述状态。②状态转移方程。③递推边界。3、一般代码实现//mst(dp,0) 初始化DP数组for(int i=1;i<=n;i++){dp[i][i]=初始值}for(int len=2;len<=n;len++) //区间...

2019-04-06 18:32:47 146

原创 acm第八次背包问题

一、01背包: 有N件物品和一个容量为V的背包。(每种物品均只有一件)第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 for i=1..N for v=v....0 f[v]=max{f[v],f[v-c[i]]+w[i]};二、完全背包: 有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求...

2019-04-03 22:44:49 120

原创 acm第七次dp通俗解法

通过这几天的做题,我发现dp的理论很简单就是大问题化小问题,求子问题,利用递推公式等求解。但是理论真的只是理论,真正实践起来才知道dp没有那么简单。 我知道要求解他的子问题,但是如何求解,自己却无从下手,知道要求递归公式,但却写不出来。所以我通过做题,来锻炼自己的分析能力,把问题逐步解析,一步一步的来求解,最终得到了递归公式,也AC了几个题。 总结一下就是:1、将原问题分解为...

2019-03-30 23:10:24 151

原创 acm第六次动态规划

一、动态规划1、 只要问题可以划分成规模更小的子问题,并且原问题的最优解中包含了子问题的最优解,则可以考虑用动态规划解决。因此,动态规划是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法。该方法主要应用于最优化问题,这类问题会有多种可能的解,每个解都有一个值,而动态规划找出其中最优(最大或最小)值的解。若存在若干个取最优值的解的话,它只取其...

2019-03-27 23:21:31 98

原创 c++程序设计学习第一总结

一、constexper和constconstexpr定义常量(在大多数情况下和const使用没有区别)constexpr int sire = 20; //20是崇量表达式constexpr int Linits=sire+10; //size+10是常量表达式constexpr int max- length(); //只有length()是一个constexpr函数时max的声明...

2019-03-24 22:00:09 260

原创 acm第五次之贪心做题之后总结

通过做题,了解到自己还是不熟悉贪心的解题思路,有的时候会做题,有方法,但是不是贪心思路,就会超时,所以我专门找了一些如何才能按照贪心思路的方法做题。 所谓贪心,就是每一步每一个途径,都求最优解,一步一步的来实现,其实就是符合了贪心思想。而如果我们只是简单粗暴的做题,用最直白的做题,就会超时。那么怎么才能发现贪心思路呢?我们其实可以通过逆向思维,通过结果来发现规律,由结果倒推性质,从而就有可...

2019-03-23 22:50:57 127

原创 acm第四次贪心算法

贪心的题比stl感觉简单多了,但是自己在做题时,还是缺乏贪心的思路,总是超时,唉,acmer之路长慢慢~一:贪心算法1、贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,希望得到结果是最好或最优的算法。2、贪心算法是一种能够得到某种度量意义下的最优解的分级处理方法,通过一系列的选择得到一个问题的解,而它所做的每一次选择都是当前状态下某种意义的最好选择。即希望通过问题的局部最优解...

2019-03-20 22:23:07 85

原创 acm第3次STL(vector)

一、vector1、定义:动态数组,动态改变储存空间的大小,定义的数组可以没有界限2、应用:头文件#include定义:vector &lt;数据结构&gt; 变量名;如:vector v;操作:empty() – 表示vector是为空 (v.empty() )size() – 返回vector内元素个数 (v.size() )push_back(a) 将元素a插入最尾端(v...

2019-03-16 22:55:52 101

原创 ACM第2次STL(set和map)

一、set和multiset1.区别:set容器中不允许元素重复,multiset可以允许重复2.操作:头文件#includeset&lt;数据类型&gt;s;s.size() – 返回容器内元素个数。s.empty() – 容器为空。s.count(a) – 返回元素值为a的元素的个数。s.lower_bound(a) – 返回元素值大于等于a的第一个元素位置。s.upper_...

2019-03-13 23:42:24 103

原创 acm第一次STL(讲述队列与优先队列)

一、队列(queue)1.含义:是一种从顶端取出元素,从尾端加入元素的一种新的数据结构2.头文件: #include 定义:queue &lt;数据类型&gt; 变量名;如:queue q;操作:empty() – 返回bool型,表示queue为空 (q.empty() )size() – 返回queue内元素个数 (q.size() )front() – 返回queue内的...

2019-03-06 20:41:17 175

原创 寒假学习10

51nod上的一道题:定义一个字符串的无序度为所有位置后面的字母比该位置的字母小的总数之和。比如&quot;DAABEC’'这个字符串的无序度是5,因为D后面有4个位置比它小(AABC),E后面有1个比它小(C),其它位置后面没有比自己小的。&quot; AACEDGG “的无序度为1(E后面有一个D比它小)。” ZWQM &quot;的无序度为6,每个位置后面所有的字母都比它小。现在你的任务是给定一些字符串(只由大写字母...

2019-02-25 23:00:55 91

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除