摘要: 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作的方法。 在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数 阅读全文
posted @ 2016-03-06 17:12 starskyhu 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等。 1. 最简单的实现 首先,能够想到的最简单的实现是,把类的构造函数写成private的,从而保证别的类不 阅读全文
posted @ 2016-03-06 16:48 starskyhu 阅读(216) 评论(0) 推荐(0) 编辑
摘要: String: 表示不可变的类,非常常用: 判断创建了几个String对象: String s = new String("OOXX"); 1个或两个: 若常量池里已经存在"OOXX",那么直创建一个String对象 若常量池里没有"OOXX",那么先在常量池创建"OOXX",再在堆里创建一个Str 阅读全文
posted @ 2016-03-06 16:44 starskyhu 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 1.找出数组中唯一的重复元素 问题描述:给定包含101个元素的数组arr,数组中元素一定属于[1,100],并且[1,100]之间的每个数都在arr中出现过。 解决方案:分析,数组中有101个元素,如果[1,100]之间的每个数出现一次,那就是100个元素了,剩下的那个元素就是唯一的重复出现的元素。 阅读全文
posted @ 2016-03-06 15:05 starskyhu 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 无论是参加面试还是笔试,数组都是常考的内容,并且考察数组的知识往往结合着比较有意思的算法。在这里参照网上的资料和平时看过的相关书籍总结一下,作为自己的面试复习材料吧。我知道这个总结肯定有遗漏或者是不对的地方,希望大家看到可以优化和改正的的地方,帮帮忙给点新思路吧。谢谢大家~~ 1.求数组中的最大值( 阅读全文
posted @ 2016-03-06 14:59 starskyhu 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 1.归并排序介绍: 归并排序遵循分治的三步法,具体的归并排序可以分为以下三部分: 划分问题:把待排序的序列分成元素个数尽量相等的两半。 递归求解:把两半元素分别排序。 合并问题:把两个有序表合并成一个。 前两部分是很好实现的,关键是两个排好序的序列,怎么合并到一起呢?这要借助一个辅助数组,每次让两个 阅读全文
posted @ 2016-03-06 14:50 starskyhu 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 1.堆内存和栈内存 堆内存是区别于栈区、全局数据区和代码区的另一个内存区域。堆允许程序在运行时动态地申请某个大小的内存 在学习C程序设计语言时,会遇到两个很相似的术语:堆内存和栈内存。这两个术语虽然只有一字之差,但是所表达的意义差别还是很大的,堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存就 阅读全文
posted @ 2016-03-06 14:46 starskyhu 阅读(298) 评论(0) 推荐(0) 编辑
摘要: C++的“继承”特性可以提高程序的可复用性。正因为“继承”太有用、太容易用,才要防止乱用“继承”。我们要给“继承”立一些使用规则: 一、如果类A 和类B 毫不相关,不可以为了使B 的功能更多些而让B 继承A 的功能。 不要觉得“不吃白不吃”,让一个好端端的健壮青年无缘无故地吃人参补身体。 二、如果类 阅读全文
posted @ 2016-03-06 14:44 starskyhu 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 1.什么是拷贝构造函数: 拷贝构造函数嘛,当然就是拷贝和构造了。(其实很多名字,只要静下心来想一想,就真的是顾名思义呀)拷贝又称复制,因此拷贝构造函数又称复制构造函数。百度百科上是这样说的:拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的参数( 阅读全文
posted @ 2016-03-06 14:43 starskyhu 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 以下三种情况下需要使用初始化成员列表: 一,需要初始化的数据成员是对象的情况; 二,需要初始化const修饰的类成员; 三,需要初始化引用成员数据; 原因: C++可以定义引用类型的成员变量,引用类型的成员变量必须在构造函数的初始化列表中进行初始化。对于类成员是const修饰,或是引用类型的情况,是 阅读全文
posted @ 2016-03-06 14:41 starskyhu 阅读(3178) 评论(1) 推荐(1) 编辑
摘要: 一、什么是操作符重载 操作符重载可以分为两部分:“操作符”和“重载”。说到重载想必都不陌生了吧,这是一种编译时多态,重载实际上可以分为函数重载和操作符重载。运算符重载和函数重载的不同之处在于操作符重载重载的一定是操作符。我们不妨先直观的看一下所谓的操作符重载: 1 #include <iostrea 阅读全文
posted @ 2016-03-06 14:39 starskyhu 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 一、引用的基本知识 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名; 说明: (1)&在此不是求地址运算,而是起标识作用。 (2)类型标识符是指目标变量的类型。 (3)声明引用时,必须同时对其进行初始化。 (4)引用声明完毕 阅读全文
posted @ 2016-03-06 14:34 starskyhu 阅读(422) 评论(0) 推荐(0) 编辑
摘要: #include"iostream.h" #include"string.h" //顺序表的定义 template<class T> class SeqList { T *data; int MaxSize;//最长度大 int last;//当前最后元素下标 public: SeqList(int 阅读全文
posted @ 2016-03-06 13:31 starskyhu 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 1.什么是动态规划: 动态规划,和分治法一样,是通过组合子问题的解而解决整个问题的。但不同的是,分治算法是指将问题划分成一些独立的子问题,递归求解各子问题,然后合并子问题的解而得到原问题的解。而动态规划适用于子问题不是独立的情况,也就是各子问题包含公共的子子问题。动态规划对每个子子问题只求解一次,将 阅读全文
posted @ 2016-03-06 12:56 starskyhu 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 1 #include <iostream> 2 3 using namespace std; 4 5 struct Node 6 { 7 public: 8 int data; 9 Node *next; 10 Node(){}; 11 Node(int i) 12 { 13 data = i; 1 阅读全文
posted @ 2016-03-06 12:55 starskyhu 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 1.友元函数的简单介绍 1.1为什么要使用友元函数 在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了 使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保 阅读全文
posted @ 2016-03-06 12:44 starskyhu 阅读(232) 评论(0) 推荐(0) 编辑