
C/C++
文章平均质量分 78
One-_-Piece
爱好电脑
展开
-
线性排序之计数排序
要求数的范围0到range,时间复杂度为O(n) /** * @brief counting sort * @author An * @data 2013.5.18 **/int* CountingSort( int *array, int le原创 2013-05-18 11:03:23 · 382 阅读 · 0 评论 -
动态规划——最长公共子序列(LCS)
/** * @brief longest common subsequence(LCS) * @author An * @data 2013.8.26 **/#include #include using namespace std;enum D原创 2013-08-26 22:32:21 · 510 阅读 · 0 评论 -
动态规划——装配线调度
/** * @brief Algorithm 15.1 * @author An * @data 2013.8.15 **/#include #define min( x, y ) ( x <= y ? x : y )using namespace原创 2013-08-16 22:06:10 · 611 阅读 · 0 评论 -
动态规划——0-1背包问题
/** * @brief 0_1_Knapsack dynamic programming * @author An * @data 2013.8.28 **//*** @problem * @0-1背包问题: /* 给定n种物品和一个背原创 2013-08-29 20:24:13 · 653 阅读 · 0 评论 -
c/c++里的 堆区 栈区 静态区 文字常量区 程序代码区
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 堆(heap):由malloc,new等分配的空间的地址,地址由低向高增长(程序员释放)。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它转载 2013-09-06 19:30:42 · 635 阅读 · 0 评论 -
B树的实现与源代码一
B树的定义假设B树的度为t(t>=2),则B树满足如下要求:(参考算法导论)(1) 每个非根节点至少包含t-1个关键字,t个指向子节点的指针;至多包含2t-1个关键字,2t个指向子女的指针(叶子节点的子女为空)。(2) 节点的所有key按非降序存放,假设节点的关键字分别为K[1], K[2] … K[n], 指向子女的指针分别为P[1], P[2]…P[n+1],其中n为节点关键字原创 2013-09-02 17:50:51 · 1272 阅读 · 0 评论 -
B树的实现与源代码二(删除源代码)
int BTreeMaximum( BNode *x ){ if ( x->leaf ) { return x->key[x->size - 1]; } else { return BTreeMaximum( x->child[x->size] ); }}int BTreeMinimum( BNode *x ){ if ( x->leaf ) { return原创 2013-09-03 12:38:48 · 806 阅读 · 0 评论 -
图的遍历(BFS, DFS)源代码
辅助队列的实现:#ifndef QUEUE_H#define QUEUE_H#include "Graph.h"typedef struct{ int *data; int head; int tail; int length; // 现在数据长度 int size; // 总的可存储大小}Queue;void CreateQueue( Queue *Q,原创 2013-09-04 16:30:49 · 1135 阅读 · 0 评论 -
C语言printf及参数压栈顺序
1.调用格式为 printf("", ); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。2.格式化字符转载 2013-09-05 14:58:15 · 1113 阅读 · 2 评论 -
多态是如何实现的
1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚函数来实现,结合动态绑定。5. 纯虚函数是虚函数再加上= 0。6. 抽象类是指包转载 2013-10-18 11:02:08 · 569 阅读 · 0 评论 -
动态规划——矩阵链相乘
/** * @brief MatrixChainMultiplication Algorithm 15.2 * @author An * @data 2013.8.25 **/#include #include #define N 6using原创 2013-08-25 16:07:59 · 932 阅读 · 0 评论 -
红黑树的创建、插入和删除等源代码
头文件:#ifndef RB_TREE_H#define RB_TREE_H#include #include #include using namespace std;enum RB_COLOR { BLACK, RED };// class RB_Tree;// 树结点class TreeNode{ friend class RB_Tree;public:原创 2013-07-18 10:46:55 · 731 阅读 · 0 评论 -
二叉查找树的各种操作源码
/** * @brief Binary Search Tree * @author An * @data 2013.6.1 **/#include #include // start from 0// #define Left( x ) ( 2 *原创 2013-06-03 17:41:40 · 509 阅读 · 0 评论 -
C/C++产生随机数
C/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数。(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。例如:#includ转载 2013-05-17 12:04:21 · 869 阅读 · 0 评论 -
顺序统计学(算法导论第九章)
找第i小的数 /** * @brief Order Statistics * @author An * @data 2013.5.20 **/#include #include using namespace std;int Partiti原创 2013-05-20 21:25:40 · 520 阅读 · 0 评论 -
栈和队列的实现
/** * @brief Stack and Queue * @author An * @data 2013.5.21 **/#ifndef STACKANDQUEUE_H#define STACKANDQUEUE_H#define stackSize原创 2013-05-21 21:44:36 · 353 阅读 · 0 评论 -
单链表及转置
/** * @brief Linked List * @author An * @data 2013.5.22 **/#ifndef LINKEDLIST_H#define LINKEDLIST_H#include using namespace s原创 2013-05-22 20:42:39 · 724 阅读 · 0 评论 -
二叉树的非递归遍历
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相转载 2013-05-23 15:57:02 · 360 阅读 · 0 评论 -
二叉树的初始化及遍历
前序遍历,中序遍历,后序遍历的递归和非递归实现层次遍历的实现 /** * @brief Binary Tree * @author An * @data 2013.5.22 **/#ifndef BINARYTREE_H#define BIN原创 2013-05-23 15:51:47 · 1111 阅读 · 0 评论 -
构造、析构函数的调用顺序及VC6.0和VC2010中实现的差别
构造、析构函数的调用顺序及VC6.0和VC2010中实现的差别 VC6.0和VC2010在初始化数组的时候存在差别:对于vector ibvec( 3 );在6.0中这条语句是先利用默认构造函数创建一个临时对象,然后三次调用复制构造函数,将此临时对象赋给数组中的值,再调用析构函数撤销临时对象;在2010中,这条句是先利用默认构造函数创建一个临时对象,然后调用原创 2013-05-24 11:31:21 · 696 阅读 · 0 评论 -
散列表
转载地址http://blog.youkuaiyun.com/yyxaf/article/details/7527878 散列方法不同于顺序查找、二分查找、二叉排序树及B-树上的查找。它不以关键字的比较为基本操作,采用直接寻址技术。在理想情况下,无须任何比较就可以找到待查关键字,查找的期望时间为O(1)。散列表的概念1、散列表设所有可能出现的关键字集合记为U(简称全集)。实际发转载 2013-05-28 22:34:15 · 777 阅读 · 0 评论 -
散列表(哈希表)各种方法实现
本文为散列表(哈希表)的源代码,如若想看算法具体介绍请点击下面链接:http://blog.youkuaiyun.com/aytfly/article/details/8986920 /** * @brief Hash Table * @author An * @data 2013.5.28原创 2013-05-29 11:19:43 · 826 阅读 · 0 评论 -
VS 快捷键
F1:在线帮助Ctrl+F:查找与替换F3: 查找下一个Shift+F3: 查找上一个F4:属性Ctrl+F4:关闭当前窗体F6: 生成解决方案Ctrl+F6: 生成当前项目F7: 查看代码Shift+F7: 查看窗体设计器F5: 启动调试Ctrl+F5: 开始执行(不调试)Shift+F5: 停止调试Ctrl+Shift+F5: 重启调试F转载 2014-03-21 15:30:41 · 515 阅读 · 0 评论