自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

转载 非递归遍历树

这题在大二学数据结构的时候就做过了,老师多次强调,当时自己也会做。但是现在又忘记了。以下算法主要是转载,另外还添加了自己的理解  http://blog.csdn.net/liwenjia1981/article/details/5728917前序,中序,后续非递归遍历树的标准算法 在中国源码网上发现了这三个算法,据说是标准算法,算法的整体思想就是(以中序为例)

2012-03-31 15:54:04 500

原创 寻找最大的第K个数

在一个无序数组中,找出最大的第K个数,数组大小为N。算法很多。比较好的算法有1、比较法(简单,当K小时可以考虑)2、快排法(平均时间好)3、堆。两种方法 3、1 大堆:存储所有N个元素 3、2 K堆:存储K个元素4、压缩区间(很好的算法,尤其是这些数是整数的时候)还有其它方法,可以参考以下网址。注意,下面那些总结得也不一定很好。http://www.bi

2012-03-30 10:41:16 558

原创 C/C++疑问

1. 构造函数能否抛出异常?虚构函数呢?2. 在类外能否调用构造函数?在类内呢?在类内的构造函数调用构造函数与类内的其它地方调用构造函数有什么区别?通常调用构造函数,都会生成一个对象;如果需要不生成对象,可以这样调用构造函数:pobj->ClassName::ClassName()在类内调用跟类外调用类似,只要将pobj该为this就行了:this->ClassName::Clas

2012-03-29 08:46:09 373

原创 C++什么情况会合成构造函数

C++里面,什么情况下编译器会自动合成构造函数?什么情况又会合成虚构函数?

2012-03-28 20:32:30 666

原创 什么是复合类型

C++中,什么是复合类型?刚开始,还以为自定义的类是复合类型。查了C++ primer才知道复合类型不是类。在C++中类型大致可以分为三种一、内置类型如int, char, float, unsigned等。内置类型是最基本的类型。二、复合类型复合类型:使用其它类型定义的类型。有三种复合类型:引用,指针,数组。三、类类型就是类。比如string以及自己定义的类。

2012-03-28 20:31:25 9131 1

原创 继承的访问权限

继承的访问权限很特别,这里总结两点。一、private继承的对象不能赋予基类指针class Base{public: virtual void f(){cout << "Base:f()" << endl;}private: int a;};class Derived:private Base{public: void f(){cout << "Deriv

2012-03-28 14:13:34 662

原创 最长公共子序列(LCS)问题

最长公共子序列也称作最长公共子串,英文缩写是LCS(Longest Common Subsequence)。其定义是:一个序列S,如果分别是两个或多个已知序列的子序列,且是符合此条件的子序列中最长的,则称S为已知序列的最长公共子序列。        关于子序列的定义通常有两种方式,一种是对子序列没有连续的要求,其子序列的定义就是原序列中删除若干元素后得到的序列。另一种是对子序列有连续的要求,其

2012-03-26 20:14:05 430

原创 学习算法的一点体会

怎么样才可以学好算法呢?是否做的算法题越多就能学得越好?我个人体会不是。我认为有两点要做好:一、数据结构;二、算法思想。一、算法的基础是数据结构,所以一定要把那些基本的数据结构彻底弄懂。二、算法题目很多,不可能把所有题都做一遍,关键还是学到算法的思想。看别人算法的时候,要把算法的思路弄明白,这样才有收获。

2012-03-26 10:52:35 459

原创 C++ 类的成员的初始化

一、普通成员变量普通成员变量,不能在类声明中初始化。二、静态成员变量即类成员变量。这种变量也不能在类声明中初始化。三、静态常量整型数据成员静态常量整型数据成员可以在类的声明中初始化,而且只有这种变量可以在类的声明中定义。class Base{public: Base(){};private: int a; int b; static con

2012-03-24 21:06:35 460

原创 C++类的大小

一、类的大小与对象的大小类只是一种类型,没有大小可言。使用sizeof得到的大小,只是它的实例化对象的大小。所以类的大小与对象的大小是一样的。class Base{private: int a; int b;};void main(){ Base base; int objSize = sizeof(base); int classSize

2012-03-24 20:11:07 630

转载 C++的static关键字/包含C语言的static用法

本文转自http://www.360doc.com/content/07/0308/09/439_388751.shtml,略做修改。C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类,也就是C语言中的用法;后者主要说明static在类中的作用。一、面向过程设计中的static(C语言的static

2012-03-24 19:46:27 426

原创 Linux疑问解答

一、普通用户关机。Q: Linux关机只能由root用户操作,其它用户不能关机。为什么Ubuntu可以呢?A: 在本地登录,普通用户也能关机。如果是远程登录就不行。二、 /etc目录存放什么文件?系统在启动过程中需要读取的文件均在这个目录下。所以在这个目录下工作的时候一定要记得备份,否则文件被意外修改后会很麻烦。

2012-03-24 18:41:35 310

原创 C语言变量类型的本质

C语言是强类型语言,定义变量时必须声明变量的类型,赋值的时候也只能是同种类型变量赋值。一。变量的类型告诉编译器怎么处理这个变量的数据。         虽然C语言是强类型语言,但是不同类型的变量通过类型转换也可以赋值,甚至指针变量可以转化为int类型,转化为char类型。从本质上来说,变量类型只是告诉编译器应该怎么处理这个变量,所以不同变量可以通过显示类型转换来赋值。理

2012-03-24 09:44:46 594

原创 操作系统疑问

一边看书,一边产生疑问,但是又不能马上去搜索答案,因为后面可能会有解释。但是后面可能没有解释,也可能在看完后面内容后自己早已经忘记了之前的疑问。所以一遇到疑问,我就要记录下来,待看完后面的内容后,回来解决这些疑问。或是自己解决,或是上网看书解决。1. 线程是否有PCB?2. 动态加载与动态链接的区别?

2012-03-24 09:44:02 385

原创 C++覆盖成员变量、类变量

一。子类的成员变量不会覆盖父类。即使变量类型名称访问修饰符完全一样,也不会覆盖,而是两者都存在。只不过访问父类的变量时,需要使用类作用域。二。

2012-03-24 09:43:29 703

原创 C++覆盖成员变量、类变量

今晚提出了一个奇怪的问题,C++可以覆盖函数,但是能否覆盖成员变量、类变量吗?还有覆盖函数时,如果函数是非虚函数,那么当函数完全覆盖与不完全覆盖会出现什么问题?完全覆盖是指函数的签名完全相同,不完全覆盖是指函数名相同,但是函数参数不同。明天去上机实验。参照陈皓去内存地址的方法来做。另外,实验C++类的内存布局。类的大小,继承类的大小之间的关系;有虚拟继承和没有继承有什么区别?

2012-03-24 09:42:51 562

原创 操作系统好书

书名:《操作系统——原理技术与编程》著者:蒋静 徐志伟出版社:机械工业出版社出版时间:2004年7月

2012-03-24 09:42:19 618

原创 C++调用C函数

前言:以前见到extern "C"这样的语句,只是简单地知道跟外部链接有关,但是没有深刻理解它的意思。首先,为什么要使用extern "C"修饰符?C++调用其它语言的函数,由于编译器生成函数的机制不一样,所以需要经过特殊处理,才可以调用。调用C语言的函数,需要在函数声明的地方语句extern "C"。如果不使用该语句,在链接的时候,编译器就会报以下这种错误。Tes

2012-03-24 09:41:42 474

原创 C语言的变量声明在其它语句之前

C语言的变量声明在其它语句之前在ANSI C99之前,变量的声明必须放在其它语句之前,否则C99以前的编译器就会报错。例如,以下的函数定义出错。[cpp] view plaincopyvoid function()  {      int a=5;      a = 10;      int

2012-03-24 09:40:59 515

转载 进程间通讯的方式

http://289972458.iteye.com/blog/1326406进程间通讯的方式:管道中还有命名管道和非命名管道之分,非命名管道只能用于父子进程通讯,命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式。FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO,因此也

2012-03-24 09:40:08 2723

转载 进程与线程的区别联系

本文主要由http://289972458.iteye.com/blog/1325189整理而来一。什么是进程       进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。       线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。      系统资源:线程自己基本

2012-03-24 09:39:25 6071 4

原创 今日任务

1. 写KMP程序2. 看操作系统面试资料3. 实现最长公共子序列(要求用递归和非递归方法)一、学习汇编弄懂基本的寄存器,以及几种寻址方式等基本语法就可以了。一、今日算法KMP找子字符串在原字符串中第一次出现的位置。二、数据结构树:二叉树;平衡二叉树;堆等三、C/C++多线程编程(可以在Linux环境下编程)四、编程任务。

2012-03-24 09:37:25 578

原创 typedef

一、typedef定义类型的同义词typedef int MY_INT;二、typedef 能不能重复定义?答案是可以。因为typedef没有定义新的类型,只是定义了类型的同义词。比如:typedef double Wages;typedef double Wages;三、typedef 定义的类型同义词是否可以作为声明?可以声明结构类型,类类型。那么可以声明

2012-03-22 19:59:28 450

原创 即时疑问

前言:什么是即时疑问?在看书或者编程的时候,经常会对各种东西有一些疑问,但是又不能马上安排时间去解决这些问题。所以非常有必要记录下来,回头再去解决它。3. 可执行文件与普通文件有什么区别?4. /etc目录存放什么文件?系统在启动过程中需要读取的文件均在这个目录下。所以在这个目录下工作的时候一定要记得备份,否则文件被意外修改后会很麻烦5. 文件所属的组成员可以没有文件拥

2012-03-22 11:05:23 544

原创 C++——变量的声明、定义

C++——变量的声明、定义与初始化一、变量的声明(declaration)声明用于向程序表明变量的类型和名字。声明跟定义的不同之处是在前面加了extern修饰符。如下:extern int i; // 声明变量i为int类型,但是没有分配存储空间。二、变量的定义定义用于为变量分配存储空间。定义也是声明,因为定义变量时声明了它的类型和名字。int i;定义的变

2012-03-22 10:08:50 570

原创 C++作用域总结

在C++中,涉及到作用域的语法很多,经常混淆。所以对作用域与作用域作一个总结,注意这个总结还不完整,当遇到新的语法时再继续补充。一、全局作用域(global scope)。概念:定义在函数外部的名字具有全局作用域。具有全局作用域的名字可以在整个程序中访问,即使不同文件也可以访问。二、如何访问全局作用域的变量?1. 变量在本文件中定义。直接访问。比如:

2012-03-22 09:40:44 1263

空空如也

空空如也

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

TA关注的人

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