自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 简单工厂模式---静态工厂方法模式

毕业一年多,好久没写csdn了,还需要多多充电,多多学习,多多记录,多多总结,上学时也学过设计模式,但是没在做过大项目,也没用过,也只是看过了,一知半解,工作后项目中的界面框架大佬使用了工厂模式,最近仔细学习了下其中的内容,在此总结作为记录:希望能在合适的地方用到它,看到这篇文章的人也请多多指教:1.本人对于聚合与组合分不太清,如果看到此文章,就请您多多指教啦,举例指导一下,谢谢!2.对于...

2018-11-02 20:40:41 219

原创 QPixmap QImage不能读取jpg

一、问题QPixmap/QImage不能读取jpg格式的图像,但是可以读取bmp,png格式的图像二、解决方法QPixmap/QImage不能读取jpg图像问题,是因为没有把支持相应格式的动态库放到程序运行目录;从Qt的安装目录下的plugins文件夹下拷贝文件夹imageformats到程序当前的运行目录下,重新运行你的程序,就能够正常读取jpg图像。...

2018-06-27 09:25:38 2692

原创 计数排序

计数排序//获取数组中最大值size_t GetMaxNum(int* arr, int len){ assert(arr && len > 0); int i = 0; int maxNum = arr[i++]; for (; i<len; ++i) { if (maxNum < arr[i]) { maxNum = arr[i]; } }

2016-10-05 12:10:04 403

原创 归并排序

归并排序

2016-10-05 12:04:39 260

原创 大数据

大数据-----------解决了超出内存表示范围的大数据无法计算的问题,即溢出问题提出问题:在计算机中,每一种类型都有自己的表示范围,比如int的表示范围【0x8000000000000000,0x7fffffffffffffff】,超出范围之后,将会是一个毫无意义的数字。eg:999999999999999999999999999999999999999999999用内置类型无

2016-08-07 19:51:51 620

原创 二叉树的面试题

二叉树的面试题1.递归创建二叉树;2.由前序遍历和中序遍历重建二叉树(前序序列:1 2 3 4 5 6 - 中序序列:3 2 4 1 6 5);3.前、中、后三种遍历的递归;4.层次遍历-队列应用;5.前、中、后三种遍历的非递归-用桟实现非递归;6.求结点的个数;7.求二叉树的高度;8.求叶子结点的个数;9.查找一个数据;10.求第k层结点的个数;

2016-07-25 21:17:52 457

转载 c++中const的作用

Const 作用1.   const类型定义:指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令2.   可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。3.   编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。4.    可以节省空间,避免不

2016-07-23 23:58:15 333

原创 文件压缩

Huffman树的应用-------实现文件压缩项目Huffman树的相关定义:WPL(带权路径长度) = PL*weightPL (最小路径长度)= 完全二叉树的路径长度路径(path):从树中一个结点到另一个结点之间的分支构成该俩点之间的路径。路径长度:指路径上的分支条数。树的路径长度是从树的根结点到每一个结点的路径长度之和。带权路径长度最小

2016-07-22 23:30:23 1199 4

原创 并查集

题目:n个人有m对好友关系,如果俩个人是直接或者间接的好友(好友的好友的好友...),则认为他们是同一个朋友圈。请问这n个人里一共有多少个朋友圈并查集的定义:1.将N个不同的元素分成一组不相交的集合。2.开始时,每个元素就是一个集合,然后按规律将两个集合进行合并;3.并查集的底层数据结构是数组。例如:n=5,m=3,r = {{1,2},{2,3},{4,5}}

2016-07-15 22:14:00 312

原创 堆的实现

堆的实现堆的介绍:二叉堆的底层数据结构为数组,它可以被视为完全二叉树结构;堆的特性:1、父结点总是大于(或小于)子结点2、每个节点的左子树和右子树都是一个最大堆(或最小堆)如图:堆的代码实现如下:提示:本程序利用仿函数与模板实现的堆,大堆与小堆的代码只是一个大于小于号的问题,所以我通过模板传参,实现大小堆,代码复用了起

2016-06-22 12:58:37 327

原创 快速排序

快速排序快速排序接近二分查找;时间效率为O(NlogN)-O(N2);

2016-06-17 20:07:54 563

原创 Windows下git的使用

Windows下git的使用更多知识:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/第一次听到git时有点好奇,于是打开网页注册了一个账号,看着一串串英文,我望而却步,因为上传文件不会,胡乱上传上去代码,可是从此没理git;这段时间,突然看见别人使用git,让

2016-06-14 22:52:20 333

原创 冒泡排序

冒泡排序思路:每遍历一次数组,往上冒一个数字,不断地缩小范围,知道所有的数字都排序完;时间效率O(N2);初学C语言版本#include void sort(int a[], int len){ int i, j, tmp; for (i = 0; i<len - 1; i++) { for (j = 0; j<len - i - 1; j++) {

2016-06-10 17:35:42 300 1

原创 直接插入排序

直接插入排序与希尔排序希尔排序是直接插入排序的优化直接插入排序思路:将一个数插入一个有序集合;最好时间效率O(N),最坏时间效率O(N2);希尔排序思路:先进行预排序(与插入排序思路相同,就是gap开始大于1),预排序完将小值放在了前面,大值放在了后面;当gap=1时,进行插入排序;此时的插入排序就接近O(N);代码如下:#includeusing n

2016-06-07 16:39:21 335

原创 100w个数中找出最大的k个数

题目:100w个数中找出最大的k个数

2016-06-05 17:46:47 783 3

原创 堆排序

题目:堆排序

2016-05-31 23:31:33 327

原创 优先级队列

堆的实现--->优先级队列注:由于大堆与小堆的实现大同小异,只需要修改大于或小于号;所以为了代码复用,本人使用了模板参数及模板的模板参数模板的模板参数:为了引入仿函数即函数对象;此处不多介绍仿函数,它只是一个函数对象;一个类型;如下:类型GreaterCompare与类型LessCompare:他们的内部都只是重载了();templatestruct Great

2016-05-31 17:30:36 272

原创 旋转数组的最小数字

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.

2016-05-24 23:18:49 249

原创 打印1到最大的n位数

题目:输入数字n,按顺序打印出1到最大的n位十进制。比如输入3,则打印出1、2、3一直到最大的三位数即999

2016-05-24 19:54:35 328

原创 数值的整数次方

题目:实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。

2016-05-23 21:44:33 250

原创 在O(1)时间删除链表结点

题目:给定单向链表的头指针和一个结点的指针,定义一个函数在O(1)时间删除该结点。链表结点与函数的定义如下:代码如下:#include#include#includestruct ListNode{ int m_pValue; struct ListNode* m_pNext;}*head;//增加一个结点void addListTailNode(st

2016-05-16 19:45:37 221

原创 调整数组顺序使奇数位于偶数前面

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分分析如下图:代码如下:#includevoid Swap(int* x, int* y){ int tmp = *x; *x = *y; *y = tmp;}void oddtoeven(int* arr, int l

2016-05-13 21:33:26 257

原创 菲波那切数列

题目:写一个函数,输入n,求菲波那切数列(Fibonacci)的第n项菲波那切数列的定义如下:说明:除了第0项为0,第一项为1,第n项都为前俩项之和eg:01 2 3 4 56 7 8 9 1011 ...... 0 1 1 2 35 8 13 21 3455 89 ......代码如下:/

2016-05-13 14:54:44 830

原创 输入二叉树的前序遍历和中序遍历,重建出该二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设前序遍历与中序遍历的结果都不含重复的数字。eg:前序遍历:{1,2,4,7,3,5,6,8};        中序遍历:{4,7,2,1,5,3,8,6};二叉树结点定义如下:struct BinaryTreeNode{int _value;BinaryTreeNode* _left;Bin

2016-05-11 18:46:32 638

原创 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请按成 一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请按成 一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数分析如下图(也是测试用例):上面例子:row = 4;col = 5;IsExitNum()函数:值num在arr[4][5]中是否存在;代码如下:#includ

2016-05-10 23:12:50 1698

原创 请实现一个函数,把字符串中的每个空格替换成“ ”

题目:替换空格---请实现一个函数,把字符串中的每个空格替换成“%20”例子:We are happy.\0替换后:We%20are%20happy.\0思路:从字符串的后面往前替换,这样字符移动的次数少,时间复杂度为:O(n);如下图1:1、首先得遍历字符串,计算字符串的真实长度,以及空格的个数;2、计算替换空格后的长度,2*空格个数+字符串真实长度3、当字符不等于' '

2016-05-09 23:03:50 1130

原创 链表的逆置

题目:输入一个链表的头节点,从头到尾反过来打印出每个节点的值Reverse()函数:输入头结点,可输出的确是从尾到头;即第一个输入的节点,最后一个输出;最后一个输入的结点,第一个输出;很典型的“后进先出“;用桟实现;1、将结点放进桟中,当结点全遍历一遍时,链表已经反过来,2、此时再从桟顶逐个输出结点的值Reverse2()函数:递归本质就是桟结构;则用_Reverse2(_

2016-05-09 21:21:08 1631

原创 单例模式

题目:实现一个类,只能生成该类的一个实例

2016-05-09 11:55:27 367

原创 实现CMyString类--深拷贝与浅拷贝

实现CMyString类,实现赋值运算符函数(深拷贝与浅拷贝)深拷贝:赋值运算符函数说明步骤1、释放原来的内存空间步骤2、再重新开辟要赋值的对象的大小的空间步骤3、再将另一个对象的值拷贝给this对象友元函数的说明:由于输出重载需要俩个参数,不能再隐含this指针,故使用友元函数代码如下:class CMyString{public:

2016-05-08 21:45:01 927

原创 两个桟实现一个队列

题目:俩个桟实现一个队列,请实现它的俩个函数appendTail/deleteHead算法思路:入队:将元素压入桟s1中;//appendTail出队:先判断s2中是否为空,如果不为空,直接弹出栈顶元素;否则,将s1中的元素逐个弹出并压入桟s2中,把最后一个元素弹出并出队;//deleteHead判断队列是否为空(empty()):判断s1/s2中都没有元素时,返回true

2016-05-06 21:05:10 653

原创 String类的各种操作(动态)

#define _CRT_SECURE_NO_WARNINGS#define DEFAULT 8#include#include#includeusing namespace std;class String{private: char* _ptr;//指向字符串的指针 size_t _size;//字符串的长度 size_t _capacity;//动态开辟的总容量pri

2015-09-10 20:50:30 612

原创 单链表

LinkList.h#pragma once#include#include#includetypedef int DataType;typedef struct Node{ DataType data; struct Node* next;}Node, *plist;plist _CreateNode(DataType x);void InitLinklist(plist

2015-07-15 22:47:57 615

原创 动态链表

DynSeqlist.h#ifndef __DYNSEQLIST_H__#define __DYNSEQLIST_H__#include#include#include#include#define SIZE 5typedef int DataType;typedef struct seqlist{ DataType* array; size_t size; /

2015-07-01 20:38:41 633

原创 顺序表

seqlist.h#ifndef __SEQLIST_H__#define __SEQLIST_H__#include#include#include#define MAX_SIZE 1000typedef int DataType;typedef struct seqlist{ DataType array[MAX_SIZE]; size_t size;}s

2015-07-01 20:35:04 626

原创 注释转换(c转换为c++)

//input.c中要处理的情况如下input.c/*int i = 0;*//*int y = 0;*/int j = 0;/*int x = 0;/*12345678*//*int h = 0;int g = 0;int j = 0;*/int q = 0;/**//**//* ****** */// /*1234567890*/

2015-07-01 20:31:04 567

原创 简单的四则运算计算器

#includevoid print_menu(){ printf("*********************\n"); printf("***1.add 2.sub***\n"); printf("***3.mul 4.div***\n"); printf("*********************\n");}int add(int x,int y){ r

2015-05-23 00:34:15 791

原创 通讯录----- 增删改查

头文件contact.h#include#include#ifndef __CONTACT_H__#define __CONTACT_H__#define MAX_NAME 20#define MAX_SEX 10#define MAX_TELE 12#define MAX_ADDR 20#define MAX_DHB 1000typedef struct Peo //

2015-05-18 22:05:06 689

原创 可变参数列表的实现--平均值

c语言中用可变参数列表的原因cpp文件中参数可以初始化,则实参中用几个参数写几个,但是c中形参不可以初始化,所以引出可变参数列表,头文件为stdarg.h,使用宏stdargva_list类型 arg变量 eg:va_list arg宏stdarg使用了三种宏 va_start(arg,val)初始化va_arg(arg,int)读取va_end(arg)结束

2015-05-12 13:08:51 827

原创 数组的初始化

#includevoid init(int arr[],int len)//数组的初始化,以下标的形式初始化数组{ int i=0; for(i=0;i<len;i++) { arr[i]=len-i; }}void sort(int *arr,int len)//冒泡排序法,以指针的形式给数组中元素排序{ int i=0; int j=0; for(i=0;i<l

2015-05-11 17:47:30 439

原创 递归实现将参数字符串中的字符反向排列,要求不能使用C函数库中的字符串操作函数

#includevoid reverse_string(char *string){ int len=0; //strlen()的实现 char*q=string; while(*q != '\0') { q++; len++; } if(len<=1) return; else { int tmp=string[0]; //递归实现的字符串翻转 stri

2015-05-11 15:21:38 542

空空如也

空空如也

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

TA关注的人

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