自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树的存储结构及遍历算法

二叉树的顺序存储:用一块连续的空间存储二叉树的节点,存储的顺序按从上到下,从左至右的顺序。顺序存储一般适合存储 : 满二叉树和完全二叉树。 对于一般二叉树,如果用顺序存储,且需要反映出一定的逻辑关系(即能用数组元素下标值反映元素在二叉树中的位置),此时可能会需要定义一些虚结点。即存储时,存储虚结点的空间即存储0值。(弊端是浪费了太多空间)所以,对于一般二叉树不适合用顺序存储结构。

2017-10-31 21:18:26 965

原创 二叉树的性质

结点的度:结点的子树棵数。(二叉树中任意节点的度不大于2)。叶结点:度为0的结点,或者称为终端节点。分支结点:二叉树度不为0的结点,即二叉树中除了叶结点的所有结点。树的深度:二叉树中所有结点的最大层号称为树的深度或者二叉树的高度。满二叉树:所有的分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上,则该二叉树称为满二叉树。完全二叉树:对二叉树从上到下,从左

2017-10-31 21:13:28 2688

原创 串的匹配算法:BF以及KMP

串的模式匹配,即在给定主串S中找到等于子串T的过程称为模式匹配。T称为模式。串的匹配算法有两种:简单匹配算法和KMP匹配算法。

2017-10-31 10:56:24 371

原创 中缀表达式算法实现&中缀表达式转后缀表达式

中缀表达式,即运算符在操作数中间。计算中缀表达式时,逐个扫描表达式。扫描时存入两个栈,操作数栈,和运算符栈。例如   3*2^(4+2*2-1*3)-5 扫描表达式。操作数栈以 栈$表示,运算符栈以 栈¥表示。扫描开始:栈$进3  ,栈¥进*  , 栈$进2 ,栈¥进^ ,栈¥进(,栈$进4 , 栈¥进+ , 栈 $进2 , 栈¥进*  接下来由于 - 减号运算符优

2017-10-30 20:05:54 587

原创 栈,队列

线性表的插入和删除只能在一端进行,这种线性表即为栈,允许插入删除的一端为栈顶。(栈是先进后出)栈的生成方式:向下生成的栈。栈顶在高地址端(下方)。 入栈为top++,出栈为top-- ;向上生成的栈。栈顶在低地址端(上方)。入栈为top--,出栈为top++;栈顶指针有两种指示方式:栈顶指针指向空单元 ;栈顶指针指向最后写入的元素。根据栈顶指针的指示方式不同,入栈和出栈

2017-10-30 15:27:01 335

原创 拟合概念

拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通过调整该函数中若干待定系数f(λ1, λ2,…,λn),使得该函数与已知点集的差别(最小二乘意义)最小。如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表达式也可以是分段函数,这种情况下叫作样条拟合。一组观测结果的数字统计与相应数值组的吻合。形象的说,拟合就是把平面上一系列的点,用一条光滑

2017-10-28 15:45:01 4519 2

原创 论文想法

一通过马尔科夫预测每个地区(不同场景)可能的业务类型,因为每个地区的业务类型大体应该不会改变。然后再确定需要退避的时长,来减少因长时间退避造成的频谱利用率低的问题

2017-10-28 09:36:21 205

原创 版本控制系统,linux下的git使用

版本控制系统:主要有三种形式的版本控制系统, 1 本地版本控制系统 (例如rcs)2 集中化版本控制系统 (例如CVS、Subversion以及Perforce),其有一个集中管理服务器,保存所有的修订版本。协同工作者通过客户端连接到服务器上,取出最新的文件或者提交更新。3 分布式版本控制系统(例如 Git、Mercurial),客户端不只是提取最新版本的文件,而是把原始的代码仓库完整

2017-10-27 09:50:43 393

转载 学习使用vim,以及各种vim插件

目录写在前面:Life Changing Editor什么是VIM为什么选VIM为什么选其它为什么犹豫选择它们VIM >= SUM(现代编辑器)如何学习VIM一秒钟变记事本VIM的基本用法VIM进阶:插件插件管理神器:Vundle配色方案导航与搜索自动补全语法其它终极配置: spf13与其它软件集成一些资源写在最后搭完网站之后的第

2017-10-27 08:17:23 7323 1

原创 linux下安装 mysql,以及简易Makefile的编写

sudo apt-get  install  mysql-server安装以后,在终端通过命令行操作数据库。 mysql -u root -p ,按回车键后输入密码便可弹出MySQL客户端操作窗口。show databases ; 显示已有数据库; create database test ;  创建名为test的数据库 。use test ; 使用test数据库。create

2017-10-26 22:06:39 1081

原创 linux 软件安装

ubuntun的软件包以deb为扩展名,其它Linux发行版的软件包(如RedHat)使用rpm扩展名。ubuntun有三个包管理系统, 即 dpkg, APT , 和 Gdebi  ;1 dpkg包管理工具当安装一个软件时,如果被依赖的软件包未安装或没有在该软件安装时提供,那么该软件安装将会失败。dpkg不会自动尝试修正此类问题。2 APT包管理工具能自动解决软件依赖问题。(

2017-10-26 16:11:31 188

原创 初识 ubuntun

ubuntun 操作系统默认使用Shell 是BASH Shell 。快捷键 ctrl + Alt +T 可打开终端。通过终端窗口的“编辑”选项中的“配置文件首选项”可以设置属于自己的个性终端。登入以后打开终端显示:其中@前jiayou196是登录的用户,@后ubuntu是主机名,~是用户的主目录缩写,用pwd命令即可查看到~代表的是/home/jiayou196,$代

2017-10-25 22:04:48 554

原创 友元类,友元成员函数,

将一个类A再另一个类B的定义中声明(声明时加friend关键字),即该类A为定义类B的友元类。该类A的所有成员函数均是定义类B的友元函数(友元声明可以位于公用、私有、或者保护部分)。例: class student {friend class Operat ;string name ;double score ;public :.......};此时,Operat类

2017-10-23 10:13:18 316

原创 模板函数,模板函数重载,显示具体化模板,实例化

编译器在选择原型时,非模板版本函数优先于显示具体化和模板版本函数,而显示具体化优先于使用模板生成的版本。1 函数模板声明与定义时均需加上template 说明为函数模板。eg .   template declaration: template void swap(T & a1 ,T & a2) ; 函数模板definition : template void

2017-10-23 09:04:05 538

原创 抽象类配合多继承使用

接口是不会出现二义性的。即在两个类中可以有同样的函数,只需要声明为纯虚函数,然后再在子类中定义(即实现接口)。当一个类继承了这两个类时,只会继承相同虚函数中的一个。

2017-10-21 09:14:13 1557

原创 构造函数,拷贝构造函数,以及赋值操作调用的具体使用

一般会产生临时对象的三种情况:  1,以值的方式给函数传参;  2,类型转换;  3,函数需要返回一个对象时;我们知道给函数传参有两种方式。1,按值传递;2,按引用传递(指针chua)。按值传递时,首先将需要传给函数的参数,调用拷贝构造函数创建一个副本,所有在函数里的操作都是针对这个副本的,也正是因为这个原因,在函数体里对该副本进行任何操作,都不会影响原

2017-10-20 15:06:41 577

原创 虚函数、纯虚函数、虚基类

1.虚函数是用于多态中virtual修饰父类函数,确保父类指针调用子类对象时,运行子类函数的。2.纯虚函数是用来定义接口的,也就是基类中定义一个纯虚函数,基类不用实现,让子类来实现。3.虚基类是用来在多继承中,如果父类继承自同一个父类,就只实例化一个父类(说的有点绕,就是只实例化一个爷爷的意思=。=)。这个和多态有关,多态的定义不清楚的话到其他地方先了解一下,多态的三个必要条件:1.继

2017-10-20 10:23:40 469

翻译 关于sizeof一个类对象

先看一个空的类占多少空间? [cpp] view plain copyclass Base  {  public:      Base();      ~Base();    };       注意到我这里显示声明了构造跟析构,但是sizeof(Base)的结果是1.     因

2017-10-20 10:21:05 639

原创 函数重载,函数重写(虚函数重写),函数重定义(非虚函数重写),以及名称覆盖(函数重定义时,与父类参数个数不同,或是参数类型不同)

函数重载:(注意,子类无法重载父类的函数)必须在同一个类总进行。子类无法重载父类的函数,父类同名函数将被名称覆盖。重载时在编译期间根据参数类型和个数决定函数调用。函数重写:必须发生于父类与子类之间并且父类与子类中的函数必须有完全相同的原型使用virtual声明之后能够产生多态(如果不加virtual ,则是重定义)如果在父类中定义一个函数(没有声明为虚函数)

2017-10-20 08:13:43 1811

原创 多态的产生、静态,动态联编

(需要对应于C++的类型兼容性原则):子类对象可以当做父类对象使用子类对象可以直接赋值发给父类对象子类对象可以直接初始化父类对象父类指针可以直接指向子类对象父类引用可以直接引用子类对象多态:同样的调用语句具有多种不同的表现形态。在C++ primer 里描述的是 父类指针既可以指向自己类型的对象,也可以指向其派生出的对象。则可以使用一个数

2017-10-19 21:34:55 281

原创 has - a , use - a , is - a (即继承);派生类的访问,多继承,虚继承 多态

类之间个关系:has -a  ,包含关系, 一个类是另一个类的属性。uses-a  , 类中有函数使用了另外一个类作为参数。eg.  classA {useB (B & obj ) ;}is - a  , 继承关系。既具有传递性,都具有共同的特征,又具有不对称性。 继承有三种继承, class Stu {  } ;class    Stu1 : public

2017-10-19 15:28:58 429

原创 一元操作符重载 ,请注意前置和后置会有区别,友元函数的真正用途

在重载前置的操作符时按正常即可。eg.    classname & operator++(classname & clas) ;   //前置重载声明 ;eg.     classname & operator++(classname & clas, int) //后置重载声明, 函数重载不以 返回类型作为判断依据,所以应加一个占位符 .而且 注意后置是先调用值,再进行后置的操作。S

2017-10-19 14:39:39 989

原创 友元函数

友元函数破坏了类的封装性在类里声明友元函数。  friend void get_name( classname * ptr ,int x ),声明的位置可在private ,也可在public 里 ;  属于全局函数。故在定义时,不用使用域解析符。可以通过友元函数访问类的私有属性。友元类 class A{ friend  class B ; //声明B是A的友元}  则B的

2017-10-19 08:10:04 222

原创 C++中静态成员变量与静态成员函数,以及malloc , free , new , delete ,区别

int * p = (int * ) malloc(sizeof(int) ) ; int * p = (int * ) malloc(sizeof(int)*10);   生成一个数组的空间int * p = new int (10) ;  生成一个int型内存空间,并指向 10 int * p = new int[10]  ;  生成数组的空间。也可以用

2017-10-18 20:00:25 1054

原创 复制构造函数,赋值运算符重载,列表初始化

拷贝构造函数调用时机class Stud {  ....} ;stud  stu1 ={....} ;1  使用一个对象初始化另一个对象Stud stu2 = stu1 ;  2       Stu stu2 (stu1) ;3 对象作为实参传给函数形参printf_stu(const Stud  st ) prittf_stu( stu1 ) ;4

2017-10-17 22:23:54 347

翻译 C++为什么需要构造函数和析构函数

为什么要有构造函数和析构函数在我们过去学习C语言编程的时候,我们通常生成的变量都是放在栈区里(auto存储类型)。然而,真正处理实际问题的程序却常常将变量或数组生成在堆区里。假设我们定义了一个对象obj,此对象有一个占存储很大的成员member,将来要放很大的一篇文章,则我们不希望这个字符数组出现在栈区,而是希望它出现在堆区,如下图所示,

2017-10-17 22:04:49 8136

转载 C/C++学习框架参考

值得学习的C语言开源项目- 1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/

2017-10-16 16:48:41 414

转载 贪心、爬山、模拟退火算法

贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。介绍模拟退火前,先介绍爬山算

2017-10-11 17:25:22 3193

空空如也

空空如也

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

TA关注的人

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