自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (3)
  • 收藏
  • 关注

原创 从尾到头输出链表、字符串;不声明变量计算字符串长度

接下来的想法是从头到尾遍历链表, 每经过一个结点的时候, 把该结点放到一个栈中。 当遍历完整个链表后,再从栈顶开始输出结点的值,此时输出的结点的顺序已经反转过来了。 该方法需要维护一个额外的栈,实现起来比较麻烦。既然想到了栈来实现这个函数, 而递归本质上就是一个栈结构。 于是很自然的又想到了用递归来实现。 要实现反过来输出链表, 我们每访问到一个结点的时候, 先递归输出它后面的结点,再输出该结

2014-07-31 22:22:52 444

原创 两个栈实现队列;两个队列实现栈

思路:s1是入栈的,s2是出栈的。  入队列时:直接压入s1即可  出队列时:如果s2不为空,把s2中的栈顶元素直接弹出;否则,把s1的所有元素全部弹出压入s2中,再弹出s2的栈顶元素

2014-07-31 19:34:19 320

原创 判断栈的pop是否正确

题目:输入两个整数序列。其中一个序列表示栈的 push 顺序,判断另一个序列有没有可能是对应的 pop 顺序。

2014-07-31 15:30:44 665 1

转载 常见和链表相关的算法

原味一、 链表排序    链表排序和数组排序的思路类似,只是链表操作起来比较麻烦,因为不能随机访问,所以只能借助于类似于前置或后置插入,添加等概念来完成。下面给出了链表排序的几种方法。辅助代码://单链表节点的定义typedef struct LinkNode{    int val;    struct LinkNode* next;

2014-07-31 11:38:17 450

原创 输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。

题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是 O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组 1、2、4、7、11、15 和数字 15。由于 4+11=15,因此输出 4 和 11。

2014-07-30 15:08:39 4788

原创 判断整数序列是不是二元查找树的后序遍历结果

题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回 true,否则返回 false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:8/ \6 10/ \ / \5 7 9 11因此返回 true。如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回 false。

2014-07-29 21:24:35 578

转载 计算机网络基础总结

原文地址:计算机网络的整体主要部分:        网络基础部分讲述了网络的分类:       OSI模型讲述了七层模型以及每层中常见的设备: 常见的协议以及协议作用层: IP地址的分类以及子网划分:                其中上述计算子网容纳的主机数时,主机号为全0和全1是不可用,所以得出的主机数需要-2.主机号

2014-07-28 16:48:21 350

原创 第一个只出现一次的字符

题目:在一个字符串中找到第一个只出现一次的字符,并输出它在字符串中的。如输入 abaccdeff,则输出 b。

2014-07-27 16:47:35 307

原创 奇偶调序问题

1、输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为 O(n)。

2014-07-27 15:11:14 422

原创 跳台阶

题目:一个台阶总共有 n 级,如果一次可以跳 1 级,也可以跳 2 级。求总共有多少总跳法,并分析算法的时间复杂度。我们把 n 级台阶时的跳法看成是 n 的函数,记为 f(n)。当n>2 时,第一次跳的时候就有两种不同的选择:一是第一次只跳 1 级,此时跳法数目等于后面剩下的 n-1 台阶的跳法数目,即为 f(n-1);另外一种选择是第一次跳 2 级,此时跳法数目等于后面剩

2014-07-27 10:48:04 257

原创 全排列

题目:输入一个字符串,打印出该字符串中字符的所有排列。

2014-07-26 15:41:16 327

转载 用bitmap解决海量电话号码统计问题

原文:http://blog.csdn.net/chris820313/article/details/6795561为准备某几个大公司的笔试,看到这样一个问题:已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。我所拜读的材料里提到了用bitmap解决这种问题,也就是说:每一个电话号码被映射到了不同的位。例如:6123456

2014-07-25 20:06:40 3338

原创 多路归并排序

下面的问题描述及相关文字都参考于CSDN中JULY的博客,在此对JULY表示感谢。JULY的博客地址如下:http://blog.csdn.net/v_JULY_v/article/details/6451990

2014-07-25 19:28:50 9314

原创 位图法排序

位图法,bit-map用一个 20 位长的字符串来表示一个所有元素都小于 20 的简单的非负整数集合,边框用如下字符串来表示集合{1,2,3,5,8,13}:0 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0上述集合中各数对应的位置则置 1,没有对应的数的位置则置 0。

2014-07-25 14:02:13 488

原创 分治法求解方程的解

问题描述  有形如:ax3+bx2+cx+d=0  这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d  均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后5位。提示:记方程f(x)=0,若存在2个数x1和x2,且x1

2014-07-24 21:07:12 1351

原创 寻找和为定值的两个数

//输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。//要求时间复杂度是 O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。//例如输入数组 1、2、4、7、11、15 和数字 15。由于 4+11=15,因此输出 4 和 11#include using namespace std; //直接穷举法void find1(int a[],in

2014-07-24 15:49:21 378

原创 自己写字符串函数

char *strcpy(char *des,const char *src){ if(des==NULL || src==NULL) return NULL; char *p=des; while((*des++=*src++)!='\0'); return p;}char *strncpy(char *des,const char* src,int n){ if(des=

2014-07-24 14:42:11 349

转载 哈希表

总结部分来自:http://blog.csdn.net/chenhuajie123/article/details/9210529哈希表        哈希表(Hash Table)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据结构。它通过把关键码值映射到哈希表中的一个位置来访问记录,以加快查找的速度。这个映射函数就做散列函数,存放记录的数组叫做散列表。

2014-07-24 09:27:54 430

转载 快速排序(递归和非递归)

#include usingnamespace std;intpartition(int*a, intl, inth){ intx = a[l]; inti = l; intj = h+1; inttemp; while(i  while(

2014-07-23 19:47:18 482

原创 输入 n 个整数,输出其中最小的 k 个—7种方法实现

输入 n 个整数,输出其中最小的 k 个

2014-07-23 16:45:10 7878

转载 堆排序

堆排序==二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆。下图展示一个最小堆

2014-07-23 11:06:06 254

原创 字符串匹配

1、暴力搜索首先将匹配串和模式串左对齐,然后从左向右一个一个进行比较,如果不成功则模式串向右移动一个单位。

2014-07-22 20:31:06 312

原创 旋转字符串

1、#include #include #include using namespace std; void shift1(char *s,int n){ int len=strlen(s); char tmp; for(int i=0;i<n;i++) { tmp=s[0]; for(int j=0;j<len-1;j++) {

2014-07-22 16:47:55 382

原创 计算两个数的最大公约数和最小公倍数

1、计算[a,b最大公约数比较笨的方法是:

2014-07-22 15:10:57 579

原创 输入某年某月某日,判断这一天是这一年的第几天?

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊 情况,闰年且输入月份大于3时需考虑多加一天。

2014-07-22 10:45:55 862

转载 【转】计算平方根

求n的平方根,先假设一猜测值X0 = 1,然后根据以下公式求出X1,再将X1代入公式右边,继续求出X2…通过有效次迭代后即可求出n的平方根,Xk+1 先让我们来验证下这个巧妙的方法准确性,来算下2的平方根 (Computed by Mathomatic)1-> x_new = ( x_old + y/x_old )/2y(x_old + -----)x_old#1: x

2014-07-21 21:29:36 483

原创 传值、引用、传指针的试题

#include using namespace std;void fun1(char *p){ p=new char[100];}void fun2(char *&p){ p=new char[100];}void fun3(char **p){ *p=new char[100];}void main(){ char *p1=NULL,*p2=NULL,*p

2014-07-21 19:53:12 352

原创 strcpy函数

先来看看微软的代码:char * __cdecl strcpy(char * dst, const char * src){ char * cp = dst; while( *cp++ = *src++ ) ; /* Copy src over dst */ return( d

2014-07-21 19:10:11 282

原创 二叉搜索树BST

#include using namespace std;struct node{ int data; node *lchild,*rchild;};//插入void Insert(node *&T,int data){ if(T==NULL)//空树时 { T=new node; T->data=data; T->lchild=NULL; T->rchi

2014-07-21 16:07:05 384

转载 B树、B+树、B*树

原文http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.htmlB树       即二叉搜索树:       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关

2014-07-21 14:26:18 259

原创 排序

#include using namespace std;#define DEBUG 1void Print(int a[],int length);void InsertSort(int *a,int length);// 直接插入排序void BubbleSort(int a[],int length);//冒泡排序void SelectSort(int a[],int

2014-07-19 19:41:08 294

转载 【转】VC++,掀起你的盖头来 ——谈VC++对象模型

VC++,掀起你的盖头来——谈VC++对象模型(美)简 ? 格雷程化    译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。Inside the C++ Object Model虽然是一本好书,然而,书的篇幅多一些,又和具体的VC++关系小一些。因此,从篇幅和内容

2014-07-18 17:05:21 289

原创 产生随机数

4.产生随机数的用法1) 给srand()提供一个种子,它是一个unsigned int类型;2) 调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到RAND_MAX之间);3) 根据需要多次调用rand(),从而不间断地得到新的随机数;4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。 0~R

2014-07-18 15:09:17 287

原创 构造函数、析构函数、拷贝构造函数

#include using namespace std;class B { public: B() { cout<<"默认构造函数"<<endl; } ~B() { cout<<"析构函数"<<endl; } B(int i):data(i) //B(int) works as a converter ( int -> instance of B)

2014-07-18 14:33:01 349

原创 大端小端和共同体

大端小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。

2014-07-18 10:09:02 529

原创 自定义String类

zidin#include using namespace std;class String {private: char *p;public: String(const char *str=NULL); String(const String &s); ~String(); String &operator=(

2014-07-17 21:56:24 307

转载 【转】求子数组的最大和

前奏    希望更多的人能和我一样,把本狂想曲系列中的任何一道面试题当做一道简单的编程题或一个实质性的问题来看待,在阅读本狂想曲系列的过程中,希望你能尽量暂时放下所有有关面试的一切包袱,潜心攻克每一道“编程题”,在解决编程题的过程中,好好享受编程带来的无限乐趣,与思考带来的无限激情。第一节、求子数组的最大和3.求子数组的最大和题目描述:输入一个整形数组,数组里有正数

2014-07-17 16:29:15 290

原创 大数的加减运算

用字符串表示大数,在进行加减计算时

2014-07-16 22:23:25 363

转载 【转】大数四则运算的C++实现

http://blog.csdn.net/yzl_rex/article/details/6943020大数四则运算的C++实现[摘要] 大数运算不仅仅运用在密码学中,还运用在一些物理学研究、生物学,化学等科目中。大数运算,意味着参加的值和计算结果通常是以上百位数,上千位数以及更大长度之间的整数运算。例如大家所熟知圆周率π的值,在一般的数值计算中用到圆周率的不须要多

2014-07-16 19:52:38 411

原创 链表操作

1、单链表的建立、查找、插入、删除、排序

2014-07-16 16:34:25 360

麦克风阵列

麦克风阵列信号处理的书,详细讲解了麦克风阵列的原理及其应用。

2014-04-18

add_noisem.m

向一段语音叠加指定信噪比的噪声,测试可用。

2013-12-31

空空如也

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

TA关注的人

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