自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 最小生成树(kruskal算法)

#include<iostream>using namespace std;//kruskal算法中对边集数组要求必须是根据全职升序排序的typedef char VertexType;typedef int EdgeType;const int MAXVEX = 100;const int MAXEDGE = 100;typedef struct Edge{ int begin ,end; EdgeType weight

2020-06-30 14:46:37 133

原创 最小生成树(Prim)

#include<iostream>using namespace std;typedef char VertexType;typedef int EdgeType;const int MAXVEX = 100;const int INFINITY = 65535;typedef struct{ VertexType vexs[MAXVEX]; EdgeType arc[MAXVEX][MAXVEX]; int numV

2020-06-30 11:58:03 3473 5

原创 超级详细的python爬虫提高CSDN页面访问量,学不会,我吃奥利给

首先你要有能够运行python3.0的运行环境,其次还要有这些三方库:其他就不需要了,本人自学4天就写出来了,相信你也可以我本来想发源代码,想了想还是发图片吧,需要源码可以私聊我如果你要用的话,只需要改两个地方就好了:拿我的博客举个例子,把红色的部分放到baseurl中,把绿色的数字放到arr列表中,你可以多放几个博客的数字,然后点击运行就好了。...

2020-06-28 15:50:55 539 5

原创 图——DFS,BFS(邻接表)

DFS你可以当成树的先根遍历来做,BFS你可以当做树的层次遍历来做,这里因为图不一定是连通图,所以每个顶点都要尝试一下,用一个BOOL数组来表示这个顶点是否经历过遍历。#include<iostream>#include<queue>using namespace std;typedef char VertexType;typedef int EdgeType;const int MAXVEX = 100;typedef struct Edg

2020-06-27 11:09:27 850

原创 图——DFS,BFS(邻接矩阵)

DFS你可以当成树的先根遍历来做,BFS你可以当做树的层次遍历来做,这里因为图不一定是连通图,所以每个顶点都要尝试一下,用一个BOOL数组来表示这个顶点是否经历过遍历。(这个编辑器插入代码段为啥只能是黑色)#include<iostream>#include<queue>using namespace std;typedef char VertexType;typedef int EdgeType;const int MAXVEX = 100;c

2020-06-27 10:32:57 795

原创 图——边集数组

#includeusing namespace std;typedef char VertexType;typedef int EdgeType;const int MAXVEX = 100;const int MAXEDGE = 100;typedef struct Edges{int begin ,end;EdgeType weight;}Edges;typedef struct Graph//图{VertexType vexs[MAXVEX]

2020-06-23 17:01:47 1529

原创 图——邻接表

#includeusing namespace std;typedef char VertexType;typedef int EdgeType;const int MAXVEX = 100;typedef struct EdgeNode//边表结点{int adjvex;EdgeType weight;EdgeNode * next;}EdgeNode;typedef struct VertexNode//顶点表结点{VertexType data;E

2020-06-23 16:33:49 206

原创 图——邻接矩阵

#includeusing namespace std;typedef char VertexType;typedef int EdgeType;const int MAXVEX = 100;const int INFINITY = 65535;typedef struct{VertexType vexs[MAXVEX];EdgeType arc[MAXVEX][MAXVEX];int numVertexes,numEdges;}MGraph;/*建立

2020-06-23 15:35:10 211

原创 线索化二叉树

我们把指向前驱或者后继的指针称为线索,加上线索的指针就称之为线索二叉树#includeusing namespace std;typedef char Elemtype;typedef enum{Link,Thread} PointTag;typedef struct BiTNode{Elemtype data;BiTNode *lchild,*rchild;PointTag LTag,RTag;}BiTNode,*BiTree;BiTNode * BuyBiTNode

2020-06-22 11:44:08 92

原创 二叉树的建立

#includeusing namespace std;typedef char Elemtype;typedef struct BiTNode{Elemtype data;BiTNode *lchild,*rchild;}BiTNode,*BiTree;BiTNode * BuyBiTNode(Elemtype val){BiTNode * s = new BiTNode();s->data = val;return s;}BiTree CreatBiTr

2020-06-21 11:15:31 621

原创 二叉树遍历

二叉树的遍历,是将树形结构线性化的过程。#include<iostream>#include<queue>using namespace std;typedef char Elemtype;typedef struct BiTNode{ Elemtype data; BiTNode *lchild,*rchild;}BiTNode,*BiTree;void PreOrderTraverse(BiTree T)//前序{ i

2020-06-21 10:08:31 197

原创 循环队列

#include const int MAXSIZE = 10;template class Myqueue{public:Myqueue(){data = new TMAXSIZE;real = front = 0;}~ Myqueue(){delete [] data;}bool Empty(){return real == front;}bool Full(){return (real + 1 + MAXSIZE) % MAXSIZE == front

2020-06-14 10:56:47 621

原创 两栈共享空间

大话数据结构:打个比方,两个大学室友毕业同时到北京工作,开始时,他们觉得住了这么多年的集体宿舍,现在工作了一定要有自己的私密空间。于是他们都希望租房时能租到独住的一居室,可找来找去才发现,最便宜的一居室要1500,地段还不好,实在是承受不起,最终他们两还是合租了一套两居室,一共2000各出一半还不错。对于两个一居室都有独立的卫生室和厨房,是私密了,但大部分空间的利用率却不高。而两居室,两个人各有卧室,还共享了客厅,厨房,卫生间,房间的利用率就显著提高,而且租房的成本也大大下降。/*使用前提:相同数据类

2020-06-13 12:10:08 280

原创 智能指针(简单版)

#include/*智能指针,面向对象的指针。该指针可以实现自动回收内存的功能。通过将指针交给对象来管理,对象放到栈中,栈由系统进行管理,来实现自动回收功能,独辟蹊径,妙啊。实现该智能指针的主要问题在于运算符的重载上。*/template class SmartPtr{public:SmartPtr(T * ptr):mptr(ptr){}~SmartPtr(){delete [] mptr;}T& operator *(){return *mptr;}

2020-06-11 11:26:08 105

原创 通用内存池

#include#include/*目的:实现一个通用的内存池过程:通过 MEM_POOL(内存池类),中的alloc实现其他类的new,dealloc实现其他类的delete,使用内存池的类,在一个类下,使用同一个内存池。(通过static关键字来进行实现:单例模式,本次实现线程安全),*/const int MEM_SIZE = 10;template class MEM_POOL{public:static MEM_POOL* getInstance()//单例模式(线程

2020-06-10 19:51:31 603

原创 简易内存池

#include/*new1.开辟内存2.初始化delete1.释放资源2.释放内存//new1.开辟内存operator new 系统2.调用构造函数delete1.调用析构函数2.释放对象的内存operator delete 系统*//*自主的内存管理机制 :通过对new,delete进行重载来实现。*//*系统允许new,delete进行重载/template class Queue{public:Queue(){pfront =

2020-06-06 15:39:09 182

原创 字符串类的写时拷贝

/*系统提供的,是深拷贝,不提供写时拷贝,因为系统不知道你使用【】是写还是读,读的话用写时拷贝反倒是浪费空间。*/#include#include<string.h>#include<vld.h>class String{public:String(){mptr = NULL;} String(const char * ptr) { mptr = new char(strlen(ptr)+1+4); mptr += 4; st

2020-06-04 11:23:11 635

原创 字符串类的写时拷贝(自己想的)

纯自己想,想到用指针的方式访问计数器,计数器与数据域同时间段开辟出来,放在头部,是个int类型。之后会写一个科学一点的,这个里面采用了强转这种不安全的方法。#include#include<string.h>#include#include<vld.h>class String{public:String(){pcount = NULL;mptr = NULL;} String(const char * ptr) { mptr = new cha

2020-06-02 18:47:33 158

原创 字符串类迭代器

#include#include//C++ string/*迭代器:1.作用:为容器提供统一的遍历方式,再提供遍历的前提下,使得使用人员无法清楚内部的存储结构,加强封装性。2.面向对象的指针:作为对象却做一个指针在做的事情。由于字符串类型,物理地址连续,采用下标访问的方式,更快,更方便,更好。所以做了优化。总结:迭代器的设计应该由容器开发人员来进行开发,根据不同容器的特点设计不同设计方案的迭代器,必须要有4个函数,1.开始迭代的函数2.结束迭代的函数3.进行迭代的函数,也就是++;4

2020-06-01 10:04:27 677

原创 字符串运算符重载

目的,实现自定义类型字符串,部分运算符重载。#include#include<string.h>#includeclass String{public:String(){}String(char* ptr){mptr = new charstrlen(ptr) + 1;strcpy_s(mptr, strlen(ptr) + 1, ptr);}const String operator +(const char *source){ char * tmp = n

2020-06-01 08:08:22 1356

空空如也

空空如也

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

TA关注的人

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