自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 旋转数组最小数字

排序之后输出最小的#include <algorithm>class Solution {public: int minNumberInRotateArray(vector<int> rotateArray) { if(rotateArray.size()==0) { return 0; ...

2018-09-05 16:08:06 114

原创 两个栈实现队列

class Solution { public: void push(int node) { stack1.push(node); }int pop(){ if(stack2.size()<=0) { while(!stack1.empty()) { int data = stack1...

2018-09-05 15:56:56 119

原创 从尾到头打印链表

/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ 将所有数据装入栈中即可,也可以用三指针法 class Solut...

2018-09-05 15:56:08 137

原创 二维数组中的查找

public class Solution { public boolean Find(int target, int [][] array) { boolean flag= false; for(int i =0;i<array.length;i++) { for(int n = 0; n<array[0].length;n++)...

2018-09-05 15:52:17 86

原创 c++基础

一,类和对象: 默认成员函数: 1:构造函数:构造函数不能定义为虚函数。 2:析构函数:析构函数一般定义为虚函数,因为如果不定义为虚函数,在继承体系中,子类对象在析构时只会释放基类资源,而对于派生类对象的资源则不会释放,从而会引起资源泄露的问题。而定义为虚函数时,在编译时,会给类创建一个虚函数表,在创建类的对象时,会默认创建一个虚函数指...

2018-09-05 15:50:13 121

原创 进程控制

1,进程创建 fork()函数:从已经存在的进程中创建一个新的进程,新进程为子进程,旧进程为父进程。 fork之后的程序会被父子进程分别处理。 fork()返回值:子进程返回0,父进程返回的是子进程的pid。 父子进程代码共享,父进程不在写入时,数据也共享。当任意一方试图写入,便以写时拷贝定位方式给各自一份副本。 ...

2018-09-05 15:48:16 76

原创 进程间通信

1,进程间通信的目的: 数据传输, 资源共享, 通知时间, 进程控制:有些进程希望完全控制另一个进程的执行,控制进程希望能够拦截另一个进程所有的陷入和异常,并能够及时知道他的状态。 2,进程间通信的方式 管道: 匿名管道:只能用于具有亲缘关系的进程之间进行通信。(父子进程),管道的什么周期随进程,半双工机制,双端通信需要...

2018-09-05 15:46:35 153

原创 剑指offer:数组中出现次数超过数组长度一半的数。

题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。题目分析: 这个题和统计字符串中出现了n次的字符的题,思路是相同的,统计出数字出现的次数,然后和数组大小的一半比较就可以。 我使用了一个map将...

2018-08-19 19:01:57 172

原创 剑指offer面试题22:栈的压入弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)栈是先进后出的结构,所以出栈顺序一定是有规则的;下面来分析一下借助一个辅助栈,按照压入序列...

2018-08-12 21:14:48 141

原创 http服务器

#include <stdio.h>#include <stdlib.h>#include <signal.h>#include <unistd.h>#include <fcntl.h>#include <string.h>#include <pthread.h>#include <as

2018-08-04 22:37:12 217

原创 http协议及简单的http服务器

URL:统一资源定位符 urlencode将字符用ASCII码转化显示 urldecode将ASCII码解码为字符http基于请求响应 客户端发起请求,服务端响应请求,然后断开连接请求协议格式: 请求行:方法(GET/POST) URL HTTP版本(1.1) 请求报头:name:value(以行为单位) ...

2018-07-14 16:48:37 226

原创 基于哈夫曼树的文件压缩

基本思想: 压缩: 1、统计出文件中相同字符出现的次数 2、获取哈夫曼编码 次数作为权值构建哈夫曼树 3、重新编码,写回压缩文件 保存头文件: 源文件后缀 编码信息的行数 每个字符的权 保存编码解压缩: 1、获取原文件后缀 2、获取每个字符出现的次数,即权值 3、利用之前后的的权值,还原哈夫曼树 4、找到对应的叶子节点,将信息保存到解压文件...

2018-07-13 16:21:59 467

原创 linux 多线程

1,线程与进程的区别 (1)进程 是一个正在执行的程序,是系统资源分配的实体 每个进程都有自己的PCB (2)线程 进程和线程创建 内核使用的都是clone函数; 所有的缺省的线程平分栈的大小 线程栈与线程栈之间有一款线程安全区。 进程是资源竞争的基本单位 ...

2018-05-27 19:03:56 132

原创 map_set的使用

map和set是红黑树的一层封装。不熟悉红黑树的请看上篇文章。map的增删查改操作 代码示例:#include <iostream>#include <map>#include <string>using namespace std;int main(){ map<string, string> m; //ma...

2018-05-11 17:45:11 198

原创 进程概念

1,孤儿进程: 父进程已经运行结束,但是子进程依然在运行时,子进程被称为孤儿进程。孤儿进程会被1号祖父进程接管。 程序示例: #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main() { pid_t pid = fo...

2018-05-11 15:33:51 228

原创 深入理解红黑树

、//本文中的图片来自于http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html什么是红黑树? 红黑树首先是一棵平衡二叉搜索树,与AVL树不同的是,红黑树的每个节点都有颜色,要么黑,要么红。概括就是以下几点: 1,红黑树是一个近似平衡的二叉搜索树 2,红黑树每个节点都有颜色 ...

2018-05-10 11:11:13 254

原创 c++模板实现红黑树

红黑树概念及构建规则请百度#include<assert.h>enum Colour{ RED, BLACK,};template<class K, class V>struct RBTreeNode{ RBTreeNode* _left; RBTreeNode* _right; RBTreeNode* _pare...

2018-05-07 11:42:44 941

原创 c++模板类实现基础二叉树的各种操作

#include <vector>#include <queue>#include <stack>template<class T>struct BinaryTreeNode{ T _data; BinaryTreeNode<T>* _left; BinaryTreeNode<T>* _ri...

2018-03-31 22:41:51 1469

原创 Linux中 RPM安装工具和yum安装工具的区别及各自特点

在Linux系统中,安装程序有好多方法,比如RPM安装,yum安装,tar.gz源代码安装等等。后两种是我经常使用的安装方式。但是现在主要对RPM和yum的安装方式进行对比。**RPM安装方式** RPM是RedHat公司开发的安装工具,全称为RedHat Package Manager,目前RPM目前非常流行,已经成为了行业新标准。 1,RPM包 用rpm工具可以将二进制程...

2018-03-31 22:16:47 1127

原创 STL模板库中Vector与List的使用

“`include include include include using namespace std;void test_list() { list l1; l1.push_back(1); l1.push_back(2); l1.push_back(3); l1.push_back(4); l1.push_back(5);

2017-12-05 22:24:51 397

转载 Linux常见系统命令

ls          显示文件或目录      -l           列出文件详细信息l(list)      -a          列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir         创建目录      -p           创建目录,若无父目录,则创建p(parent) cd               切换目录 touch

2017-11-29 15:59:00 169

原创 深度剖析c++菱形继承!

菱形继承属于多继承的一种,如图中所示,son继承了father1和father2,属于多继承! 菱形继承的特点: son将grandfather类继承了两次!问题提出: son中,会将grandfather的成员继承几次呢?看下面例子: “`include using namespace std;class grandfather{public: string _name; };

2017-11-24 23:12:05 258

原创 c++基础

1:整理类和对象的基础知识,如类的定义,访问限定符,面向对象封装性,对象的大小计算等等。 2:整理四个默认成员函数及运算符重载相关知识 3:整理隐含的this指针等等,及对运算符重载背后做的事情。c++基础:1: 类     在c++中,用 "类" 来描述 "对象",类就可以看做是对相似事物的抽象, 找到这些不同事物间的共同点。这些对象的行为,就是函数。 类是属

2017-10-10 17:02:19 220

原创 指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别)

概念:指针就是一个地址变量。而引用是变量的别名。

2017-09-25 21:51:10 898

原创 c++入门小知识

1,.命名空间  实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。 namespace lll{     int a;       int b;}namespace 是定义命名空间所必须写的关键字,lll就是我自己建立的一个命名空间的名字;在花括号内是声明块,在

2017-09-25 18:17:28 295

原创 单链表带环问题

判断单链表是否带环?若带环,求环的长度?求环的入口点? 1 2 3 4 5 6 7 8 9不带环:链表遍历一次, 到最后的节点的下一个节点会指向NULL,此时链表不带环。带环:,在判断链表是否带环之前,应该先判断链表是否为空。空链表肯定不带环。只要链表带环,对链表进行遍历就会形成死循环,没有出口。这是就需要用到快慢指针来确定链表是否带环。定义两个指针(fas

2017-09-22 23:28:34 304

原创 顺序表和链表的优缺点及使用场景

顺序表:优点:尾插效率高,支持随机访问。链表:缺点:头插,中插效率高,不支持随机访问。使用场景:在进行尾插的时候用顺序表,因为相对于链表来说,顺序表进行尾插不需要进行遍历来找到最后一个位置,而链表则需要遍历。这样会影响程序运行的效率。同样的,在进行头插和中插的时候,顺序表需要将插入位置后面的所有数据都向后挪动一次,而链表只需要创建一个新的节点,然后将节点链入

2017-09-18 17:16:20 5937

原创 单链表的各种操作(增删查改)

单链表的各种操作(增删查改)main函数自己写/#include #include typedef int DataType;typedef struct Node{ DataType _Data; struct Node* next;}Node;//创建一个节点Node* BuyNode(DataType x){ Node* node = (Node*

2017-09-17 23:14:54 498

原创 静态顺序表的实现(增删查改排序)

顺序表的各种操作实现#define _CRT_SECURE_NO_WARNINGS 1#include #include #include #include typedef int DataType;#define N 100//结构体定义typedef struct SeqList{ DataType array[N]; // 数组 size_t siz

2017-09-17 23:12:58 356

原创 初期C语言编程心得

现在可以说是第二次学C语言了吧,之前在学校的课程基本咩怎么学过C语言,抱着一副得过且过的态度去学习,现在大二快结束了,为自己的将来考虑,重新开始学习编程!刚开始必须去掌握C语言中的那些变量、关键字、标识符、运算符、运算符优先级等等,这些比较简单,只要记住就行。然后就是输入输出语句,刚开始的东西都很基础。只要会用就行。没什么可说的!经过一段时间的学习,我感觉到初期(指针之前)C语言的精髓

2017-07-01 12:24:51 495

原创 99乘法表小程序

empty#include int main(){ int i,j=0; for (i = 1; i<= 9; i++){ for (j = 1; j <= i; j++){ printf("%d*%d = %2d ", i , j ,i*j); } printf("\n"); } return 0;}

2017-06-24 19:21:57 392

空空如也

空空如也

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

TA关注的人

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