c++语言
删库跑路nice
这个作者很懒,什么都没留下…
展开
-
求最小生成树
求最小生成树现在我所学到的有两种算法:kruskal算法以及prim算法。kruskal算法这个算法实际上就是加边法,每次选择最小的边加入集合(加入的边不能构成回路),直到把所有的节点都找到为止。#include<iostream>#include<cstring>#include <algorithm>using namespace std;...原创 2019-12-01 19:51:55 · 100 阅读 · 0 评论 -
图
相对于图来说,树还是太仁慈了,树就是在给图做铺垫。但是总结一下图也没学多少东西,Dijkstra、Floyd求最短路径,拓扑序列、Kruskal、Prim算法求最小生成树。感觉最麻烦的就是求关键路径了,其他的看懂代码就没啥了。下面一一分析:Dijkstra最短路径实现代码如下:#include<iostream>#include<cstring>const i...原创 2019-12-01 19:14:35 · 93 阅读 · 0 评论 -
树和二叉树的知识
关于树的学习该一段落,在这里就简单的总结一下自己曾经踩过的坑,希望能给看到这篇文章、正在学习树的朋友带来学习的灵感。首先想要学习树,必须完全掌握它的物理概念,多看几遍都不为过,学树最重要的是有层次感,自己在脑子中幻想一棵苹果树,数据就是上面的苹果。就下来就是遍历问题,这个地方曾经困扰我很久(看不懂前序,中序,后序是怎样便利的),虽然你看着例题在脑子中走了一遍,但是自己真的已经懂了吗?给你个新...原创 2019-12-01 14:17:51 · 86 阅读 · 0 评论 -
BF算法与KMP
BF算法是我感觉最简单的模式匹配的解法,说白了就是暴力吧!就是太耗时间了,一般不采取。简单的功能实现函数:int BF(char s[],char t[]){ int lens=strlen(s);//计算字符串的长度,经测试size(),length()都不行 int lent=strlen(t); int i=0,j=0; while(i<lens&...原创 2019-11-12 19:29:54 · 108 阅读 · 0 评论 -
队列的链式实现
链式实现相对于顺序实现麻烦了点,但是好处也是显而易见的,链式就没有了空间限制是最大的优点。下面就给出实现代码:主类:struct Node{ int data; Node *next;};class LinkQueue{ Node *fronts,*rear;//一个头指针,一个尾指针public: LinkQueue(); ~LinkQueu...原创 2019-11-12 11:01:00 · 94 阅读 · 0 评论 -
队列
队列也是一种存储方式,头进尾出。先给出顺序存储的代码:主类class Queue{ int data[Maxsize]; int front,rear;//头指针,以及尾指针 public: Queue(); ~Queue();//顺序存储可以为空 void inQueue(int x);//进 int deletedata();//...原创 2019-11-12 09:33:15 · 129 阅读 · 0 评论 -
栈2
栈里面还包含一种两栈共享空间的形式:就是把一个数组,从中间的每个位置分开,分别以两个端点为底(栈1与栈2),用两个指针表示即可。栈1为空则top1=-1,栈2为空top2=maxsize。和上次那个栈差不多,就不再啰嗦。下面直接说线性栈:主类struct Node{ int data; Node *next;};class LinkStack{ Node ...原创 2019-11-11 23:16:36 · 85 阅读 · 0 评论 -
栈
这里写一个最简单的栈:主类:class seStack{ int data[100];//数据 int top;//栈顶public: seStack(); ~seStack(); void Pushin(int x);//入栈 int Pop();//出栈 int gettop();//获得栈顶数据 bool emptys(...原创 2019-11-11 21:51:03 · 101 阅读 · 0 评论 -
双链表
双链表和单链表在原理上是差不多的,就是前后两个数据之间存在两个指针。既可以由前找后,也可以由后找前,说白了就是用空间换时间。下面就是双链表的实现代码:主类:struct Node{ int date; Node *llink,*rlink;};class Shuang{ Node *first; public: Shuang(int a[],in...原创 2019-11-05 08:54:49 · 72 阅读 · 0 评论 -
线性表的链式存储
上次分享了顺序存储的主要代码,这次的链式存储因为使用到了指针就比较难了,一不小心就会出现错误。主类:struct Node{ T data; Node<T> *next;};template<class T>class Linklist{ Node<T> *first;public: Linklist(); ...原创 2019-11-04 09:39:48 · 82 阅读 · 0 评论 -
线性表的顺序表
线性表包括顺序表和链表,相对来说顺序表还是挺简单的,没有指针,就不会出现各种乱七八糟的错误。下面主要对顺序表的几个主要实现功能进行简单的分析以及讲解:主类:const int Maxsize=100;template <class T>class Lists{ T data[Maxsize];//存放数据 int length;//存放数据的数量public...原创 2019-11-04 09:17:23 · 82 阅读 · 0 评论 -
继承与组合方面的知识
一、组合组合在好久之前就接触了,只是不知道运用的就是组合罢了。是的直白点组合就是将已有类的对象作为另一个类的成员,通过成员对象使用已有类的功能。就稍微写个代码提示一下吧!class Engine{....};class Wheel{.....};class Car{ Engine a; Wheel wheel[4];};注意:1.一般作为新类的私有成员。2.作...原创 2019-06-21 20:02:47 · 72 阅读 · 0 评论 -
5月25日学习总结
这几天没学啥新鲜的,今天就分享一下图书馆代码吧!这个代码比较繁琐,大家可以在里面找找自己需要的信息,希望有所帮助。与君共勉!#include<bits/stdc++.h>using namespace std;class Book//在这里定义图书类,存书籍信息{ string shuming,bianhao,zuozhe; int money,allshu,o...原创 2019-05-25 23:58:50 · 122 阅读 · 0 评论 -
5月15日学习总结
这两天学习有点乱,找不到重心。下面就分享下通讯录更新后的版本吧!#include<bits/stdc++.h>using namespace std;class Phone{ string name,tel; public: Phone() { name="li"; tel="123456789"; } ...原创 2019-05-15 22:18:36 · 115 阅读 · 0 评论 -
5月18日学习总结
上节课老师教授了两种方式解决删除vector中数据排序混乱问题,下面是通过虚删的方式重新写的代码。这种方式适合数据类中有很多中数据的情况,用multimap时存vector中的下标,但是像这种通讯录只有姓名和电话号码的类,直接用的multimap就行了。#include<bits/stdc++.h>using namespace std;class student{ s...原创 2019-05-19 22:37:24 · 107 阅读 · 0 评论 -
5月4日学习总结
一、 三分算法三分算法和二分算法差不多都是从最小的到最大的依次进行查找。例如定义:left和rightMid=(left+right)/2;Midmid=(Mid+right)/2;如果Mid靠近极值点,则right=Midmid;否则(Midmid靠近极值点)则left=Mid;下面给个模板:double mid,midmid;while(low<high){mid=...原创 2019-05-04 22:44:35 · 73 阅读 · 0 评论 -
简易模拟ATM机
代码如下:#include<vector>#include<iostream>#include<ctime>#include<iterator>//直接使用万能头文件#include<bits/stdc++.h>using namespace std;struct tim{ string caozuo1; in...原创 2019-04-21 15:27:29 · 455 阅读 · 0 评论 -
调用系统时间
前几天写了一个关于模拟银行ATM机的程序,不是很难,最大的收获就是学会了调用系统时间,我觉得有用就分享给大家。include<vector>#include<iostream>#include<ctime>#include<iterator>//可以直接使用万能头文件#include<bits/stdc++.h>using na...原创 2019-04-21 15:15:43 · 193 阅读 · 0 评论