- 博客(15)
- 资源 (3)
- 收藏
- 关注
原创 单链表基本操作实现
#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
图的遍历以及最短单元路径
2018-04-10
二叉树的遍历操作
2018-04-09
链表所有操作
2018-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人