- 博客(15)
- 资源 (4)
- 收藏
- 关注
原创 实现一个搜索二叉树
先来看代码:BinaryTree.h#ifndef _BINARY_TREE_#define _BINARY_TREE_class BinaryTree{private: class Node{ public: Node(int); int data_; Node *left_; Node *right_; }; Node *root_; int siz
2013-03-31 11:02:43 703
原创 把递归实现的问题转化成栈来实现
函数的调用过程,其实就是压栈和出栈,而递归就是自己调用自己,也是压栈和出栈问题,所以,任何递归实现的问题都可以用栈来实现。#include #include int func(int n){ if(n < 1) return -1; else if(n == 1) return 1; else return n + func(n-1);}class Test{pu
2013-03-25 20:26:35 681
原创 归并排序
看懂了这段代码,就真的理解了归并排序。#include class MergeSort{private: int *arr_; int size_; void mergeSort(int *tmp_p, int lowerBound, int upperBound){ if(lowerBound == upperBound) return; else{ int
2013-03-21 21:42:19 494
转载 C++虚函数列表
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这
2013-03-18 12:25:13 1448
转载 全排列
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。用C++写一个函数, 如 Foo(const char *str),
2013-03-17 10:49:26 502
转载 浅谈HTTP中Get与Post的区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1
2013-03-14 21:33:36 533
原创 英文缩写记录
NAT的全称是(Network Address Translation),通过NAT可以将内网私有IP地址转换为公网IP地址。一定程度上解决了公网地址不足的问题。DAL为数据访问层(Data Access Layer)
2013-03-11 22:28:19 1156
转载 小计算题
1. 有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关,这两个房间是分割开的,从一间里不能看到另一间的情况。现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的。分析:先进有开关的房子,先开A开关,过一段时间关上,再开B开关,然后进入有灯的房子,亮着的灯由B开关控制,用手摸熄灭的两盏灯,热的受A开关控制,剩下的受C开关控制。2.你让一些人为你工作
2013-03-10 22:59:07 498
原创 数组指针
#include typedef int(*type_t)[5];int main(){ type_t tmp; int a[5] = {1,2,3,4,5}; tmp = &a; int *p = (int*)(&a+1); std::cout << "*(a+1) = " << *(a+1) << std::endl; std::cout << "*(p-1) = " <<
2013-03-10 00:23:27 513
原创 逆序一个单链表
把一个单链表逆序。#include typedef struct node{ int data; struct node *next;}node_t;void insert(node_t **head, int data){ node_t *node = (node_t*)malloc(sizeof(node_t)); node->data = data; node->nex
2013-03-09 20:14:20 717
原创 判断单链表是否有环
先来看看程序,再解释:#include typedef struct node{ struct node *next;}node_t;bool IsExitsLoop(node_t *head){ node_t *slow = head; node_t *fast = head; while( fast && fast->next ) { slow =
2013-03-09 12:16:39 740
原创 有N个大小不等的自然数(1--N),请将它们由小到大排序。
要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。我看了网上的答案,感觉不正确,现在我自己写出的答案供大家参考。#include #include #include void sort(int*, int);int main(){ int arr[] = {5,9,3,7,4,2,8,6,1,10}; int n = sizeof(arr)/sizeof(int);
2013-03-08 00:15:59 858
转载 C++关键字mutable
关键字 mutable 是一个奇怪的修饰符(specifier),它只能够用于一个类的非静态数据成员。下面我将讨论 mutable 的语义和用法,但是首先我要解释一下 C++ 对象模型的一个关键概念。对象的状态 一个对象的状态由其非静态数据成员的值构成,因此,修改一个数据成员将会改变整个对象的状态。将一个成员函数声明为 const 能够保证它不会改变对象的状态。 然而在一些
2013-03-06 23:03:36 388
转载 C++编译器会为类添加哪些成员函数
一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,如果你写 class Empty{}; 就相当于: class Empty { public: Empty(); Empty(const Empty&); ~Empty(); Empty& operator=(c
2013-02-28 22:52:44 500
原创 求数值型数组的子数组和最大值
题目:求子数组的最大和 输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为 O(n) 。 例如输入的数组为 1, -2, 3, 10, -4, 7, 2, -5 ,和最大的子数组为 3, 10, -4, 7, 2 ,因此输出为该子数组的和18 。分析:
2013-02-28 22:44:21 415
过滤含html标签的字符串
2010-05-28
commons-beanutils-1.8.2
2010-01-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人