自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (3)
  • 收藏
  • 关注

原创 sklearn 快速实现矩阵超量运算

sklearn 快速实现矩阵超量运算

2019-10-12 15:02:00 319

原创 插入排序与归并排序

分治思想,归并排序,插入排序

2018-03-23 17:57:15 309

原创 二分法查找实现(递归与非递归)

实现二分法查询与非递归二分法查询,pclint检查no warning

2018-03-20 20:25:03 7636 4

原创 单链表基本操作实现

#include #include using namespace std; class List{ private: struct Node{ int data; Node *next; Node(const int &d){ data=d; next=NULL; } }; Node *head; public: List(){

2017-09-30 15:53:29 317

转载 最小生成树与最短路径算法

最小生成树(prime算法、kruskal算法)和最短路径算法(floyd、dijkstra)   带权图分为有向和无向,无向图的最短路径又叫做最小生成树,有prime算法和kruskal算法;有向图的最短路径算法有dijkstra算法和floyd算法。   生成树的概念:联通图G的一个子图如果是一棵包含G的所有顶点的树,则该子图称为G的生成树 生成树是联通图的极小连通子图。所谓极小是指:若在

2017-08-24 15:45:51 1762

转载 快速排序

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序

2017-07-17 16:08:10 229

原创 C++多态实现机制

多态分为两种,静态多态和动态多态。静态多态也称编译时多态,主要包括模板和重载。而动态多态则是通过类的继承和虚函数来实现,当基类和子类拥有同名同参同返回的方法,且该方法声明为虚方法,当基类对象,指针,引用指向的是派生类的对象的时候,基类对象,指针,引用在调用基类的虚函数,实际上调用的是派生类函数。这就是动态多态。 静态多态: 1.   模板: 模板就是实现代码重用机制的一种工具,它可以实现类型

2017-07-17 14:15:22 632

原创 STL中的erase操作导致指针失效问题

在代码运行过程之中,发现STL使用erase函数进行数据删除时会发生不知名错误,在此予以代码改进 #include #include #include #include using namespace std; int main(){ vector m, v; //ininal m m.push_back(200); m.push_back(300); m.push_back(500

2017-06-29 15:53:10 1140

转载 关于字符串指针不可修改的问题

char*m ="hello"; *(m+1) ='s'; for(;*m !='\0';m++){ printf("%c\n",*m); } 但是出运行时错误。 ---------------------------------------------------------- 我用数组下标的方式是可以修改的: C/C++ code int i =0; char w

2017-05-31 16:09:52 402

原创 static关键字

static主要定义全局静态变量、定义局部静态变量、定义静态函数。 1.定义全局静态变量: 在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点。 a.在全局区分配内存。 b.如果没有初始化,其默认值为0. c.该变量在本文件内从定义开始到文件结束可见。 2.定义局部静态变量: 在局部变量前面加上关键字static,其特点如下: a.该变量在

2017-05-31 14:29:57 275

原创 基于图的深度优先遍历(DFS)与广度优先遍历(BFS)

注意:本篇博文主要注重具体实现,适合于有一定数据结构基础的读者。 初始化:假设给定图G的初态是所有顶点均未曾访问过。 在G中任选一顶点v为初始出发点(源点)。 深度优先遍历:首先访问出发点v,并将其标记为已访问过;然后依次从v出发搜索v的每个邻接点w。若w未曾访问过,则以w为新的出发点继续进行深度优先遍历,直至图中所有和源点v有路径相通的顶点(亦称为从源点可达的顶点)均已被访问为止。依次遍历

2017-05-19 00:24:07 1929

原创 二叉树的深度优先遍历(DFS)与广度优先遍历(BFS)

二叉树的深度优先遍历(DFS)与广度优先遍历(BFS) 深度优先遍历:从根节点出发,沿着左子树方向进行纵向遍历,直到找到叶子节点为止。然后回溯到前一个节点,进行右子树节点的遍历,直到遍历完所有可达节点为止。 广度优先遍历:从根节点出发,在横向遍历二叉树层段节点的基础上纵向遍历二叉树的层次。 DFS:ABDECFG BFS:ABCDEFG DFS实现: 数据结构:栈 父节点

2017-05-14 17:45:38 53005 4

原创 股市编程问题的解决方案

题目描述 风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输入数值

2017-05-11 16:29:53 541

转载 new/delete 和malloc/free 的区别

malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于ma

2017-04-28 00:49:05 222

原创 虚函数与纯虚函数

通过声明类的一个或者多个virtual函数为纯虚函数,可以使一个类成为抽象类。抽象类可以为具体的类提供继承基类的作用,通过继承关系达到减少代码量,综合对象特征属性的目的。 一个纯虚函数在声明时“初始化为0”的函数,如下所示: virtual void fun() const=0;  其中"=0"为纯虚指示符。纯虚函数不提供函数的具体实现,每个派生的具体类必须重写所有基类的纯虚函数的定义,提供

2017-04-26 23:22:24 500

图的遍历以及最短单元路径

class MatrixUDG { private: char mVexs[MAX]; // 顶点集合 int mVexNum; // 顶点数 int mEdgNum; // 边数 int mMatrix[MAX][MAX]; // 邻接矩阵 int path[MAX]; public: // 创建图(用已提供的矩阵) MatrixUDG(char vexs[], int vlen, char edges[][2], int elen, int dis[]); //初始化图的一条边 void IninalEdge(char vexbegin, char vexend, int dis); /*析构函数*/ ~MatrixUDG(); // 深度优先搜索遍历图 void DFS(); // 广度优先搜索(类似于树的层次遍历) void BFS(); //单元最短路径 void DijkstraPath(); //显示两点之间的最短路径 void ShowPath(int begin, int end); // 打印矩阵队列图 void print(); private: // 读取一个输入字符 char readChar(); // 返回ch在mMatrix矩阵中的位置 int getPosition(char ch); // 返回顶点v的第一个邻接顶点的索引,失败则返回-1 int firstVertex(int v); // 返回顶点v相对于w的下一个邻接顶点的索引,失败则返回-1 int nextVertex(int v, int w); // 深度优先搜索遍历图的递归实现 void DFS(int i, int *visited); };

2018-04-10

二叉树的遍历操作

class BSTTree { public: //构造函数 BSTTree(); //析构函数 ~BSTTree(); //打印操作 void Print(const unsigned int &module;); //打印节点信息 void PrintNode(Node *p); //前序遍历 void PreorderPrint(Node *p); //中序遍历 void InorderPrint(Node *p); //广度优先遍历 void BFSPrint(Node *p); //深度优先遍历 void DFSPrint(Node *p); //插入操作 void Insert(Info key); //插入节点 void InsertNode(Node *&root;,Info key); //删除操作 void Remove(Info key); //删除节点 void RemoveNode(Node *&root;, Info key); //查找分支权值最小节点 Node *FindMinnode(Node *p, Info key); private: Node *root; };

2018-04-09

链表所有操作

struct Info { string name; //姓名 int id; //学号 }; //链表定义 struct Node { Info val; Node *next; Node(Info x) :val(x), next(NULL) {} }; class LinkList { public: //构造函数 LinkList(); //在链表头部插入结点 void InsertHead(Info val); //插入结点 void Insert(Info val, int pos); //删除结点 void Remove(Info val); //得到链表长度 int Length(); //链表反序 void Reverse(); //查找结点位置 int Find(Info val); //打印链表 void Print(); //析构函数 ~LinkList(); private: Node *head; int length; };

2018-04-09

空空如也

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

TA关注的人

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