C++
文章平均质量分 76
转角天边
转角
展开
-
C++类的操作总结
/*待解决问题双目操作符的重载与单目操作符的重载问题还要继续探究类的继承,虚函数,纯虚函数*/#include #include using namespace std;class person;//定义person类的友元函数class people{public : people(){cout<<"People构造函数被调用"<<endl;} void pse原创 2012-11-09 20:02:03 · 1025 阅读 · 0 评论 -
算法导论-----堆排序
时间复杂度为O(nlgn)#include "stdafx.h"#include "stdlib.h" //数组中堆元素的个数int heap_size;//数组元素个数int length;//添加一个根结点,并维护堆的性质void MAX_HEAPIFY(int *A,int i){ //左、右孩子都已是最大堆 int left=2*i+1; int r原创 2013-05-26 12:17:57 · 595 阅读 · 0 评论 -
算法导论-----队列
#include using namespace std;templateclass Queue{ private: typedef struct List { T value; List * next; List * prev; }LIST,*LIST_POINT; LIST_POINT h原创 2013-05-26 12:23:42 · 639 阅读 · 0 评论 -
算法导论-----二叉搜索树
#include using namespace std;typedef struct Node{ int value; struct Node * parent; struct Node * right; struct Node * left;}NODE,*NODE_POINT;class Tree{private: //根节点 NODE_POI原创 2013-05-26 12:25:11 · 660 阅读 · 0 评论 -
算法导论-----散列表
#include typedef struct list{ struct list *next; int value;}LIST,*LIST_POINT;//散列函数int HASH(int x){ return x%17;}void CHAINED_HASH_INSERT(LIST_POINT T,int x){ int k=HASH(x); LIST原创 2013-06-01 15:15:07 · 613 阅读 · 0 评论 -
算法导论-----图(深度优先搜索)
尝试优先策略:只要可能,就在图中尽量深入,深度优先搜索总是对最近才发现的结点v的出发边进行探索,直到该结点的所有出发边都被发现为止。一旦结点v的所有出发边都被发现,搜索则回溯到v的前驱结点,来搜索该前驱结点的出发边。该过程一直持续到从源结点可以达到的所有结点都被发现为止。如果还存在尚未发现的结点,则深度优先搜索将从这些未被发现的结点中任选一个作为新的源结点,重复此过程。#include us原创 2013-06-01 15:12:56 · 656 阅读 · 0 评论 -
算法导论-----图(广度优先搜索)
在执行广度优先搜索过程中,将构造出一棵广度优先树。一开始,该树仅含有根结点,就是源结点s。在扫描已发现结点u的邻接链表时,每当发现一个白色结点v,就将该结点v加入该棵树中。在广度优先树中,称结点u是结点v的前驱或父结点。在广度优先搜索树里从结点s到结点v的简单路径所对应的就是图G中从结点s到结点v的最短路径,即包含最少边数的路径。文件Queue.h见队列篇中所写的。#inclu原创 2013-06-01 15:26:10 · 614 阅读 · 0 评论 -
DLL总结
转载:点击打开链接一、在dll中定义输出函数 总体有两种方法,一种是添加def定义文件,在def文件中定义要输出的函数;另一种是在源代码中待输出的函数前加上__declspec(dllexport)关键字。1、添加def定义文件dll_def.cpp文件:#include #include void FuncInDll(){ std::cou原创 2015-07-13 09:38:15 · 547 阅读 · 0 评论 -
动态规划解回文
class Solution {public: string longestPalindrome(string s) {int len = s.length();int max_length = 0;int begin_index = 0;// table[i][j] 表示从i到j的字符串是否为回文bool table[1001][1001] = {false};原创 2016-01-31 15:49:41 · 339 阅读 · 0 评论 -
算法导论-----插入排序
int _tmain(int argc, _TCHAR* argv[]){ int A[]={31,41,59,26,41,58}; int count=sizeof(A)/sizeof(A[0]); int key=0; for(int i=1;i<count;++i) { key=A[i]; for(int j=原创 2013-05-26 12:11:50 · 563 阅读 · 0 评论 -
算法导论-----栈
#include using namespace std;templateclass Stack{private: //定义一个双向链表 typedef struct DoubleLink { T value; DoubleLink* next; DoubleLink* prev; }DOUBLE_LINK,*DOUBLE_LINK_POI原创 2013-05-26 12:22:29 · 665 阅读 · 0 评论 -
算法导论-----最大子数组问题(线性解法)
int _tmain(int argc, _TCHAR* argv[]){ int sum=0; int left=0; int right=0; int max=0; int A[]={13,-3,-25,20,-3,-16,-23,18,20,-7,12,-5,-22}; //不包含数组里全是负数的情况 for(int i=0;i<sizeof(A)/sizeof(A[0])原创 2013-05-26 12:16:56 · 942 阅读 · 0 评论 -
define的使用技巧
【转】宏定义使用技巧 1 转自:http://dxf206.blog.163.com/blog/static/4227861200952511813462/ 我在写代码的时候喜欢使用宏,不仅使代码看起来整洁,而且用好了还能极大的减轻编码的工作量,但是如果使用不当的话,出了问题查找起来就就非常的难了,下面的总结大部分是从网上看到的,也有一些是我自己在工作中总结出来的。转载 2012-11-15 13:39:23 · 1446 阅读 · 0 评论 -
利用ODBC连接数据库
例子用到的数据库是MySql添加数据源创建MFC 基佬于对话框的工程ODBC在工程里添加头文件#include "afxdb.h"创建CDatabase类的对象CDatabase db;接下来就是连接数据库了,在OnInitDialog函数里添加 //判断数据库是否打开 if(!db.IsOpen()) { //连接数原创 2012-12-08 16:27:54 · 738 阅读 · 0 评论 -
背包问题
问题描述:有n个物体,重为w[0],w[1]...,有一个背包,只能装重为s的物体.问背包应装入哪些物体,使重量刚好为s。这是很经典的一个问题,现给出两种解法,递归和非递归,递归方式是在网上下载的,非递归方式是自己写的递归方式#include using namespace std;int knap (int s, int n, int w[]) {原创 2013-03-28 16:20:02 · 707 阅读 · 0 评论 -
算法导论-----归并排序
void Merge(int *A,int p,int q,int r){ int n1=q-p+1; int n2=r-q; int *L=new int[n1]; int *R=new int[n2]; for(int i=0;i<=n1-1;++i) { L[i]=A[p+i]; } for(int j=原创 2013-05-26 12:13:12 · 740 阅读 · 0 评论 -
算法导论-----最大子数组(归并解法)
时间复杂度为O(nlgn)typedef struct Array{ int left; int right; int sum;}ARRAY,*ARRAYPOINT;//此函数类似于归并排序里的合并函数ARRAY FIND_MAX_CROSSING_SUBARRAY(int *A,int low,int mid,int high){ ARRAY max; max.lef原创 2013-05-26 12:15:47 · 654 阅读 · 0 评论 -
算法导论-----最大优先队列
#define INIT_NUMBER 2int reserve_number = 100;int heap_size;int length;typedef struct pair{ int key; int value;}PAIR,*PAIRPOINT;//往最大优先队列中添加根结点void MAX_HEAPIFY_ROOT(PAIR* A,int i){ int原创 2013-05-26 12:19:02 · 655 阅读 · 0 评论 -
算法导论-----快速排序
时间复杂度O(nlgn)#include int PARTITION(int *A,int p,int r);//快速排序void QuickSort(int *A,int p,int r){ if(p<r) { int q=PARTITION(A,p,r); QuickSort(A,p,q-1); QuickSort(A,q+1,r); }}//划分子原创 2013-05-26 12:21:24 · 594 阅读 · 0 评论 -
算法导论-----红黑树
/*红黑树的性质:1、每个结点或是红色,或是黑色2、根结点是黑色3、如果一个结点是红色,则它的两个子结点都是黑色4、对每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点*/#include "iostream"using namespace std;typedef enum node_color{ BLACK, RED}NODECOLOR;原创 2013-05-26 12:27:07 · 1127 阅读 · 0 评论