随笔分类 -  编程语言 / C++

摘要:堆:实质是一颗完全二叉树,最大堆的特点:父节点值均大于子节点;最小堆的父节点值均小于子节点;一般使用连续内存存储堆内的值,因而可以根据当前节点的索引值推断子节点的索引值:节点i的父节点为(i-1)/2;节点j的左子结点:j * 2 + 1;节点j的右子结点:j * 2 + 2;以下代码实现了最大堆最... 阅读全文
posted @ 2015-03-09 16:41 bigbigtree 阅读(3954) 评论(0) 推荐(0)
摘要:二分搜索,也称二分查找、折半搜索,是一种在有序数组中查找特定元素的搜索算法。搜索从数组的中间元素开始,如果中间元素刚好是要查找的元素,则搜索结束,如果要查找的特定元素大于(小于)中间元素,则在数组大于(小于)中间元素的一半中查找。该算法的递归实现比较容易理解,思路更清晰,但效率方面仍有提高的空间。代... 阅读全文
posted @ 2014-11-07 10:44 bigbigtree 阅读(604) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2014-09-22 10:39 bigbigtree 阅读(450) 评论(1) 推荐(0)
摘要:public继承从根本上讲,有两部分:接口继承和实现继承。两者之前的区别很像函数声明与函数定义。具体设计中,会呈现三种形式:derived class只继承成员函数的接口(纯虚函数);derived class同时继承函数的接口和实现,同时能够重写(override);derived class同时... 阅读全文
posted @ 2014-09-11 09:21 bigbigtree 阅读(292) 评论(0) 推荐(0)
摘要:首先介绍一个原则LSP(Liskov Substitution Principle),如果Class D以Public方式继承Class B,则所有B对象可以派上用场的任何地方,D对象一样可以派上用场。对于重载和重写,相信大家都已经有所了解。这里讨论一下在public继承的时候,重载函数的问题。... 阅读全文
posted @ 2014-09-10 22:12 bigbigtree 阅读(314) 评论(0) 推荐(0)
摘要:使用动态规划求最大子数字和:s[i]表示data[i~n-1]以元素i开始的最大子数组和,a[i]表示data[i~n-1]中的最大子数组和 ;s[i]=max(s[i+1]+data[i], data[i]);a[i]=max(a[i+1], s[i]); 由于数组s,a递推的时候,都只用到数组的... 阅读全文
posted @ 2014-09-02 22:59 bigbigtree 阅读(377) 评论(0) 推荐(1)
摘要:平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果... 阅读全文
posted @ 2014-08-18 09:20 bigbigtree 阅读(971) 评论(0) 推荐(0)
摘要:看编程珠玑,深知二分搜索的用处之大,自己写了一遍,竟然出了死循环。代码如下: 1 int bsearch(int *data, int val,int left, int right) 2 { 3 if(left >1; 6 if(data[mid]==val) 7 ... 阅读全文
posted @ 2014-08-11 16:07 bigbigtree 阅读(417) 评论(0) 推荐(0)
摘要:单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台... 阅读全文
posted @ 2014-08-11 09:53 bigbigtree 阅读(311) 评论(0) 推荐(0)
摘要:Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the fol... 阅读全文
posted @ 2014-08-04 14:47 bigbigtree 阅读(1196) 评论(0) 推荐(0)
摘要:Then-queens puzzle is the problem of placingnqueens on ann×nchessboard such that no two queens attack each other.Given an integern, return all distinc... 阅读全文
posted @ 2014-08-04 10:44 bigbigtree 阅读(2854) 评论(0) 推荐(0)
摘要:题目1373:整数中1出现的次数(从1到n整数中1出现的次数)题目描述:亲们!!我们的外国友人YZ这几天总是睡不好,初中奥数里有一个题目一直困扰着他,特此他向JOBDU发来求助信,希望亲们能帮帮他。问题是:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一... 阅读全文
posted @ 2014-07-27 23:00 bigbigtree 阅读(2954) 评论(0) 推荐(0)
摘要:处理字符串的过程中,难免会遇到字符匹配的问题。常用的字符匹配方法1. 朴素模式匹配算法(Brute-Force算法) 求子串位置的定位函数Index( S, T, pos). 模式匹配:子串的定位操作通常称作串的模式匹配。 目标串:主串S。 模式串:子串T。 匹配成功:若存在T的每个字符依次... 阅读全文
posted @ 2014-07-14 14:26 bigbigtree 阅读(571) 评论(0) 推荐(0)
摘要:图的遍历指的是从图中的任一顶点出发,对图中的所有顶点访问一次且只访问一次。图的遍历操作和树的遍历操作功能相似。图的遍历是图的一种基本操作,图的许多其它操作都是建立在遍历操作的基础之上。图的遍历方法目前有深度优先搜索法和广度(宽度)优先搜索法两种算法。深度优先搜索法DFS深度优先搜索法的基本思想是:从... 阅读全文
posted @ 2014-06-23 16:29 bigbigtree 阅读(592) 评论(0) 推荐(0)
摘要:本文主要介绍两种在windows下调用外部exe程序的方法:1、使用SHELLEXECUTEINFO 和ShellExecuteExSHELLEXECUTEINFO 结构体的定义如下: 1 typedef struct _SHELLEXECUTEINFO { 2 DWORD cbSize... 阅读全文
posted @ 2014-04-29 15:24 bigbigtree 阅读(1904) 评论(0) 推荐(0)
摘要:表驱动法是一种编程模式(scheme)-从表里查找信息而不使用逻辑语句(if和case)。对简单的情况而言,使用逻辑语句更为容易和直白。但随着逻辑链的越来越复杂,查表法也就愈发显得更具吸引力一,表驱动法使用总则使用表驱动法的两个问题:如何在表中查询条目(1)直接访问(2)索引访问(3)阶梯访问在表里存些什么,可以是查询出来的结果数据,可以是保存一个描述该动作的代码,可以是保存对实现该动作的子程序的引用二,直接访问表,四个例子:计算每月的天数是一个很适合用直接访问表描述的例子,因为你可以用month变量去表里面查询记录。一般来说,你可以用原本控制着很多if语句的数据去直接访问表字符分类保险费率: 阅读全文
posted @ 2014-02-18 22:06 bigbigtree 阅读(2018) 评论(0) 推荐(0)
摘要:转自http://blog.sina.com.cn/s/blog_5e8facd20100qn20.html1.指针函数的定义顾名思义,指针函数即返回指针的函数。其一般定义形式如下:类型名*函数名(函数参数表列);其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数返回的指针指向的类型”。“(函数参数表列)”中的括号为函数调用运算符,在调用语句中,即使函数不带参数,其参数表的一对括号也不能省略。其示例如下:int *pfun(int, 阅读全文
posted @ 2014-02-08 20:14 bigbigtree 阅读(316) 评论(0) 推荐(0)
摘要:碰到一道题:1 int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};2 int *p = a[0];3 int (*ptr)[4] = (a+1);4 5 cout<<*(p+9)<<endl;6 cout<<(*ptr+1)[1]<<endl;7 cout<<*(*(a+2)+1)<<endl;8 return 1;上题结果为: 10 7 10分析: int (*p)[4] 由于()优先级最高,因而p是一个int类型的指针,该指针指向包含四个int变量的数组。int x[4] ;可以把* 阅读全文
posted @ 2013-12-26 22:05 bigbigtree 阅读(2856) 评论(0) 推荐(0)
摘要:今天需要解决一个问题,将影像瓦片(一堆jpg文件)分别进行读取,并将所有数据以文件流的方式存入一个.db的文件中,同时将每个jpg数据在db文件中的位置保存下来,作为index存在.idx文件中。其中部分代码如下(没有copy fopen和fclose的部分): 1 char buf[256]; for (int i = 0; i 1 struct _stat finfo;2 _stat(jpgpath,&finfo);3 int s = finfo.st_size;3、利用filelength函数1 FILE* file = fopen(filepath, "rb" 阅读全文
posted @ 2013-12-23 10:47 bigbigtree 阅读(493) 评论(0) 推荐(0)
摘要:源码下载:点击下载源码如下:#include#include#include#include#define_AFXDLLusingnamespacestd;voidmain(){//此文件在工程打开状态下为不可访问char*filepath="..\\test.ncb";//方法一struct_statinfo;_stat(filepath,&info);intsize=info.st_size;cout C/C++ -> Code Generation -> Runtime Library, 选择"Multi-threaded Debug(/ 阅读全文
posted @ 2013-12-23 09:26 bigbigtree 阅读(671) 评论(0) 推荐(0)