自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HZC的专栏

共勉

  • 博客(101)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

转载 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p

转载的大牛博客深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p一、可能的组合:(1)const char*p(2)char const*p(3)char *const p(4)const char **p

2015-04-29 22:09:20 361

转载 剑指offer 面试题36:数组中的逆序对

题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如,有一个数组为Array[0..n] 其中有元素a[i],a[j].如果 当ia[j],那么我们就称(a[i],a[j])为一个逆序对。在数组{7,5,6,4}中一共存在5对逆序对,分别是(7,6),(7,5),(7,4),(6,4),(5,4)。参考文献

2015-04-29 20:32:12 394

转载 STl中的排序算法详细解析

全排序即把所给定范围所有的元素按照大小关系顺序排列。sort采用的是成熟的"快速排序算法"(目前大部分STL版本已经不是采用简单的快速排序,而是结合内插排序算法)1. 所有STL sort算法函数的名字列表:函数名             功能描述sort          对给定区间所有元素进行排序stable_sort     对给定区间所有

2015-04-28 21:56:06 477

原创 二叉树的非递归遍历

二叉树的非递归遍历——先序,中序,后序遍历。深度优先,广度优先遍历非递归算法在http://blog.csdn.net/u010355144/article/details/45228009中。#include#include#include#include#includeusing namespace std;#define Element char#

2015-04-28 12:19:18 423

转载 递归应用——字符串全排列,字符串组合

来源http://blog.csdn.net/wuzhekai1985问题1 :输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。    思路:这是个递归求解的问题。递归算法有四个特性:(1)必须有可达到的终止条件,否则程序将陷入死循环;(2)子问题在规模上比原问题小;

2015-04-28 09:35:54 513

原创 cout <<string对象 编译出错引发的思考

#include using namespace std; int main(){  string str="abcd";  cout //error C2679: 二进制“        return 0;}当你写下这样的代码时你将会得到一大堆的编译错误, 其中比较有用的在      第一行:  error C2679: binary '      第

2015-04-27 21:41:20 2335 1

转载 C++下遍历文件夹

C++下遍历文件夹编写程序遍历文件夹及其子文件夹下所有文件,并输出到标准输出流或者文件流。1. 先考虑在单层目录下,遍历所有文件。以C:\WINDOWS为例:用到数据结构_finddata_t,文件信息结构体的指针。struct _finddata_t{ unsigned attrib; //文件属性 time_t time_create;

2015-04-27 20:39:55 568

转载 c++ 遍历目录下文件和文件夹

function:遍历目录下所有文件,返回文件总数,子文件夹总数(修改一下可以获得全部文件名等)。[cpp] view plaincopy#include "stdlib.h"  #include "direct.h"  #include "string.h"  #include "io.h"  #include

2015-04-27 15:46:23 1453

原创 判断字符串d是否是字符串s关于栈的输出序列

由栈的输入输出过程可得一下规律:      如果下一个弹出的数字刚好是栈顶的数字,那么直接弹出。如果下一个弹出的数字不在栈顶,我们把压栈序列中还没有入栈的数字压栈,直到把下一个需要弹出的数字压入栈顶为止。如果所有的数字都压入栈,但是仍然没有找到下一个弹出的数字,那么该序列不可能是一个弹出序列。代码如下:#include#includeusing namespace std;

2015-04-25 16:29:01 555

原创 实现一个包含Min,Max函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push及pop的时间复杂度都是O(1).注:如果每次都把最小元素压入辅助栈,那么就能保证辅助栈的栈顶一直都是最小元素。当最小元素从数据栈内被弹出之后,同时弹出辅助栈的 栈顶元素,此时辅助栈的新栈顶元素就是下一个最小值。       m_data是数据栈,m_min是辅助栈。vo

2015-04-25 11:50:15 1137

转载 二叉树基本操作的递归实现(二叉树建立,先序,中序,后序,深度的递归遍历。广度优先,高度优先的非递归遍历)

树的特点:1. 每个结点有零个或多个子结点 2. 每一个子结点只有一个父结点3. 没有前驱的结点为根结点4. 除了根结点外,每个子结点可以分为m个不相交的子树树相关的术语:节点的度:一个节点含有的子树的个数称为该节点的度叶节点或终端节点:度为零的节点称为叶节点非终端节点或分支节点:度不为零的节点双亲节点或父节点:若一个

2015-04-23 21:56:00 1407

转载 Socket编程指南及示例程序

1         前言在一些常用的编程技术中,Socket网络编程可以说是最简单的一种。而且Socket编程需要的基础知识很少,适合初学者学习网络编程。目前支持网络传输的技术、语言和工具繁多,但是大部分都是基于Socket开发的,虽说这些“高级”的网络技术屏蔽了大部分底层实现,号称能极大程度的简化开发,而事实上如果你没有一点Socket基础,要理解和应用这些技术还是很困难的,而且会让你成

2015-04-23 21:43:22 545

原创 1.用两个栈实现队列 2.用两个队列实现一个栈

1.用两个栈实现队列编程思想:添加元素全都放入栈sta,出栈元素都从栈stb退出。当stb非空时,直接进行元素出栈实现队列。只有在栈stb为空,且sta非空的情况下,将sta中所有的元素一次性加入stb,(stb为空,sta为空,队列空)再进行元素出栈。Quene核心代码void  appendTail( ElementType data)//入队     {

2015-04-23 15:53:43 615

转载 stack_queue_priority_queue 容器适配器

适配器(adapter):适配器是标准库中的通用概念,适配器是一种机制,包括容器适配器、迭代器适配器、函数适配器。本质上,适配器是使一事物的行为类似于另一事物的行为的一种机制。容器适配器让一种已存在的容器类型以一种不同的抽象类型的工作方式实现。STL提供了三种顺序容器适配器,queue、priority_queue、stack。默认的stack和queue都

2015-04-23 12:27:12 581

转载 deque容器(双向队列)

Deque 容器(双向队列)deque是double-ended queue的简称,是一种类似vector的容器,提供随机访问功能,与vector不同的是,deque可以实现在头部和尾部两端插入元素。deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容。deque容器类与vector类似,支持随机访问和快速插入删除,它在

2015-04-23 11:01:51 570

转载 List容器(双向链表)

List 容器list是C++标准模版库(STL,Standard Template Library)中的部分内容。实际上,list容器就是一个双向链表,可以高效地进行插入删除元素。使用list容器之前必须加上头文件:#include;list属于std命名域的内容,因此需要通过命名限定:using std::list;也可以直接使用全局的命名空间方式:using namesp

2015-04-23 10:47:43 394

转载 Set容器

1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让

2015-04-23 10:13:00 473

转载 Map容器(hash_map)

一、关于map的介绍map是STL的一个容器,和set一样,map也是一种关联式容器。它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,有助于我们处理一对一数据。这里说下map内部数据的组织,map内部是自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据

2015-04-23 09:26:07 688

转载 Vector容器

C++中vector使用详细说明 2013-07-03 11:20:48分类: C/C++1. 在C++中的详细说明vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数

2015-04-22 22:57:29 343

转载 面试_单链表操作试题_汇总

一、单链表结点的删除0、删除单链表p指向的那个元素,(时间和空间复杂度尽量小)二、单链表的存取1、找出单链表的倒数第K个元素,(仅允许遍历一遍链表)2、找出单链表的中间元素,(仅允许遍历一遍链表)三、单链表与环的问题3、判断单链表是否有环(6形状)?4、如何找到环的入口?5、如何知道环的长度?6、带环链表的

2015-04-22 20:45:37 381

转载 linux常见命令

1.     利用Ctrl+Alt+F1到Ctrl+Alt+F6在6个虚拟控制台之间切换,利用Ctrl+Alt+F7切换回图形界面。2.     使用who命令来判断谁在系统上及其登录方式。id命令用来显示用户信息和组信息。3.     cal命令列出当前月的日历。4.     ps命令用来列出在系统上运行的进程。没有参数的ps命令显示单个终端上其他的所有进程。ps aux

2015-04-22 14:30:29 350

转载 C++文件读写详解(ofstream,ifstream,fstream)

在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view plaincopyprint?#include   ofstream         //文件写

2015-04-22 10:08:19 334

转载 qsort和sort的用法

qsort   功 能: 使用快速排序例程进行排序   用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));   各参数:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针用于确定排序的顺序 排序方法有很多

2015-04-21 22:34:35 640

转载 linux shell数据重定向(输入重定向与输出重定向)详细分析

linux shell数据重定向(输入重定向与输出重定向)详细分析http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html在了解重定向之前,我们先来看看linux 的文件描述符。linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就

2015-04-21 16:10:31 364

原创 编程之美2.14 求子数组和的最大值(首尾相连)

整体思路:问题的解可以分为两种情况:1)解没有跨过A[n-1]到A[0],即普通的求子数组和的最大值2)解跨过A[n-1]到A[0]对第二种情况,只要找到从A[0]开始求和的最大的一段(A[0],...,A[j])(0那么第2种情况中,和的最大值M_2为:M_2=A[i]+...+A[n-1]    +   A[0] +...+ A[j]如果iM_2=A[0

2015-04-20 22:15:30 461

转载 编程之美2.12——快速寻找满足条件的两个数或三个数

问题:1. 快速找出一个数组中的两个数,让这两个数之和等于一个给定的值。2. 快速找出一个数组中的三个数,让这三个数之和等于一个给定的值。1. 解法:先用快速排序对数组排序O(nlogn),让后用双指针(双索引)法对排序好的数组进行反向遍历,并且遍历的方向不变。(若是计算两个数的和,则初始化为i=0,j=n-1,若是计算两个数的差,则初始化为i=0,j=1)

2015-04-20 19:27:36 437

转载 编程之美2.12——快速寻找满足条件的两个数。(拓展满足条件的多个数)

前奏希望此编程艺术系列能给各位带来的是一种方法,一种创造力,一种举一反三的能力。本章依然同第四章一样,选取比较简单的面试题,恭祝各位旅途愉快。同样,有任何问题,欢迎不吝指正。谢谢。第一节、寻找满足条件的两个数第14题(数组):题目:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输

2015-04-20 17:29:36 712

转载 软件开发流程

目录1开发流程▪ 需求分析▪ 概要设计▪ 详细设计▪ 编码▪ 测试▪ 软件交付▪ 验收▪ 维护2软件维护3软件升级4报废处理5举例解析6学习内容1开发流程编辑需求分析(系统分析员)(产生需求规格说明书)1.相

2015-04-20 16:34:12 650

转载 【编程之美】2.4从1到N中1出现的数目----出现任意一个数的个数。

题目描述:给定一个十进制整数N,写出从1开始到N的所有整数,统计一下其中出现所有“1”的个数。例如12,一共有1、10、11、12四个数中出现5次1。问:1、写出一个函数,返回1到N之间出现1的次数2、满足条件f(N) = N 的最大的N是多少。题目解析:思路一:我们用粗暴的方式,要求1的个数,那么我们就跟二进

2015-04-19 22:07:49 546

转载 C++11新特性

C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百科不是知道是台湾还是香港人翻译的然后由工具转换成简体中文的,有些术语和语言习惯和大陆程序不一样! 我决定结合这两个版本按照我自己的习惯把这篇文章整理到我的博客中.分享给关注我和关注C++11的朋友们.

2015-04-19 14:14:29 417

原创 判断字符串及其子串是否是包含回文字,如果包含输出长度。

例如:str=helloworld      输出 3  (owo)注:回文串有两种 类型:       类型一、abcba    类型二、abccba算法思想:为从第二个元素开始顺序遍历字符串。1.查看第i个字符是否和第i-1个相等,相等符合类型二 处理。2.如果1不满足在查看i两边元素是否相等,相等符合类型一,否则i++。代码如下:#include#includeu

2015-04-19 13:30:36 556

原创 n个元素顺序进栈,那么出栈的顺序有多少种?

我们把n个元素的出栈个数的记为f(n), 那么对于1,2,3, 我们很容易得出:  f(1) = 1  f(2) = 2  f(3) = 5  然后我们来考虑f(4), 我们给4个元素编号为1,2,3,4, 那么考虑:元素1出栈顺序可能出现在1号位置,2号位置,3号位置和4号位置(很容易理解,一共就4个位置,比如1234,元素1就在1号位置)。  分析:  1) 如果元素1在1号位置,那么只可

2015-04-18 21:38:26 5856 1

转载 斐波那契数列的几种计算机解法

斐波那契数列传说起源于一对非常会生的兔子。定义:这个数列有很多奇妙的性质(比如 F(n+1)/F(n) 的极限是黄金分割率),用计算机有效地求解这个问题的解是一个比较有意思的问题,本文一共提供了4种解法。解法一:递归这是最最最直观的想法,是每个人都能编写的简单程序,优点是非常明显的:简单易懂,清晰明了。但是缺点就是效率非常低,时间复杂度是指数级的。举

2015-04-18 20:11:46 569

转载 Java多线程编程小结+java中创建线程的的几种方式

1,继承自Thread类,代码逻辑写在子线程中,需要重写run()方法,主线程里start()就可以了package com.myjava.thread;public class ExtendsThread extends Thread{    private final static int THREAD_NUM = 5;        public static v

2015-04-18 19:59:22 400

转载 C++ 父类指针指向子类对象||子类指针指向父类对象的理解

父类子类指针函数调用注意事项1,如果以一个基础类指针指向一个衍生类对象(派生类对象),那么经由该指针只能访问基础类定义的函数(静态联翩)2,如果以一个衍生类指针指向一个基础类对象,必须先做强制转型动作(explicit cast),这种做法很危险,也不符合生活习惯,在程序设计上也会给程序员带来困扰。(一般不会这么去定义)3,如果基础类和衍生类定义了相同名称的成员函数,那么通过对象指针调

2015-04-18 18:32:48 13501 1

转载 Stirng,Stringbuffer,Stringbuild的区别浅淡

String 1,Stirng是对象不是基本数据类型 2,String是final类,不能被继承。是不可变对象,一旦创建,就不能修改它的值。 3,对于已经存在的Stirng对象,修改它的值,就是重新创建一个对象,然后将新值赋予这个对象 StringBuffer 1,一个类似于 String 的字符串缓冲区,对它的修改的不会像String那样重创建对象。 2,使用append

2015-04-12 22:53:43 504

转载 类变量、成员变量、实例变量、局部变量、静态变量、全局变量 的解释。

类体由2部分构成:1.成员变量的定义;1.成员方法的定义;在变量定义部分定义的变量叫做类的成员变量,成员变量在整个类中都有效.(全局变量应该是成员变量的俗称)在方法体中定义的变量叫做局部变量,局部变量只在定义它的方法中有效.成员变量又分为实例变量和类变量(static静态变量).class One{ float x; //x为实例变量static

2015-04-12 22:41:34 465

转载 java int与integer的区别

int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int 是基本类型。Integer是引用类型。。比如int a= 5;对于a你只能用来做计算。。比如加减乘除Integer b = 5;b你可以用来做很多事情,因为他是一个对象,他有很多方法,你可以像使用String对象那样使用它。

2015-04-12 22:34:39 972

转载 Java中sleep()和wait()的区别

sleep和wait有什么区别第一种解释:功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩.        还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用notify()直接唤起.第

2015-04-12 22:25:42 343

转载 List、Map、Set三个接口,存取元素时,各有什么特点?

List与Set都是单列元素的集合,它们有一个功共同的父接口Collection。Set里面不允许有重复的元素,存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true;当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果为false。取元素:没法说取第几个,只能以Iterator

2015-04-12 22:18:21 4331

c++ 库函数(中文版)

c++ 库函数(中文版)

2014-09-28

数据结构1800题

介绍历年数据结构考试知识点,考点非常适合计算机类考研学子!

2013-07-04

飞思卡尔 S12X 与S12 核的区别

飞思卡尔单片机S12X 与S12 核的区别

2013-04-18

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

TA关注的人

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