- 博客(24)
- 资源 (6)
- 收藏
- 关注
原创 【集锦】4-Static专题
1.static修饰普通变量static修饰全局变量:1.作用域:改变链接属性,只在本文件有效,即使extern外部声明也不行,其他文件可定义相同名字的变量2.初始化:只能被初始化一次,如果是整型不初始化就会自动赋值为0,字符型初始化为空3.存储区:静态存储区没变static修饰局部变量:1.作用域:改变链接属性,生命周期在整个文件有效,但是出了其作用域便不可再用,因此作用域不...
2019-03-25 22:48:53 187
原创 【数据结构】数组实现两个栈即共享栈
前言1.奇偶占位法2.首尾相遇法一个数组实现共享栈是一个经典的算法,这些年也备受笔试/面试的青睐,其核心思想不难,但是对于临界点的把握是比较容易出错的,下面列举出两种常用方法。1.奇偶占位法如下图所示,对stack1进行偶数位压栈,对stack2进行奇数位压栈。top即栈顶,分别指向当前栈中最后一个元素的下一个将要压栈的位置。栈的数据结构较为简单,这里就不对其push、pop等操作过多描述,...
2019-03-23 13:21:28 527
原创 【数据结构】再谈堆与优先级队列
前言1. 完全二叉堆2. 最大堆和最小堆3. 源代码及注释4. 优先级队列堆是继栈、队列以及二叉树之后又一个重要的数据结构,堆在底层也是没有自己的容器的,而是通过binary heap这种complete binary tree(完全二叉树)来实现的。下面就堆的实现原理及底层容器作以阐述和实现。1. 完全二叉堆complete binary tree(完全二叉树),整棵树除了最底层的叶节点之...
2019-03-23 03:23:48 233
原创 【C++】set、map、multiset、multimap的用法简介
前言一、STL::set特性二、STL::map特性三、STL::multiset特性RB-tree是一种平衡二叉搜索树,自动排序效果很不错,所以标准的STL中set、map即以RB-tree作为底层的数据结构,set与map所开放的各种操作接口,RB-tree基本上都提供了,因此·set、map都只是调用红黑树的方法对外层的一次封装而已。一、STL::set特性1)set的元素的键值就是实...
2019-03-23 03:07:14 1235
原创 【数据库】 B+树、B*树及MySQL的两种引擎
前言本篇博客继承前面B-树,对B-树的变种B+/B*树展开分析,以及MySQL数据库的两个引擎MyISAM与InnoDB作以阐述,文中引入了部分网上资料。B+Tree的定义与特性B+树作为B-树的一个变种,也是一种多路搜索树。其定义基本与B-树没有区别,除了以下几点:1)非叶子结点的子树指针域关键字个数相同。2)非叶子结点的子树指针P[i],指向关键字属于([K[i],K[i+1]])的...
2019-03-23 02:55:03 1040
原创 【C++】异常处理机制深度剖析
前言一、C异常处理机制二、C++异常机制1. 异常的抛出(throw)与捕获(catch)2. 栈展开3. 异常捕获的匹配规则4. 异常的重新抛出5. 异常规范6. 异常之构造函数与析构函数6. C++异常的优缺点程序在运行过程中有些错误是可以预料但不可避免的,这时就要力争做到·允许用户排除错误,继续运行程序,或者至少给出适当的提示信息、C/C++都有各自的异常处理机制。无疑异常处理成为了所有预...
2019-03-23 02:16:13 1240
原创 【数据结构】图简介
前言一、图的概念二、图的术语三、图的表示1. 邻接矩阵2. 邻接表和逆邻接表3. 十字链表四、总结一、图的概念究竟什么是图呢?大家先来想一想咱们常用的互联网产品。举个栗子,大家一定都用过微信,假设你的微信朋友圈中有若干好友:张三、李四、王五、赵六、七大姑、八大姨。而你七大姑的微信号里,又有若干好友:你、八大姨、Jack、Rose。微信中,许许多多的用户组成了一个多对多的朋友关系网,这...
2019-03-22 19:44:37 329
原创 【算法精练】位运算 && 阶乘
位运算最近碰到很多通过巧妙着`来巧妙解决复杂问题的算法,今天分享的这道题,或许能够开拓你的一些算法思维。案例一有一组存放 ID 的数据。并且 ID 取值为 0 - (N-1) 之间,其中只有一个 ID 出现的次数为 1,其他的 ID 出现的次数都等于 2,问如何找到这个次数为 1 的 ID ?解法一:巧用数组下标我的第一想法便是采用下标法来解决,把 ID 作为数组 arr 的下标,在...
2019-03-22 18:43:15 823
原创 【笔试集锦】并查集 && 大数打印
题目已知有n个人和m对好友关系存储于r中,如果两个人是直接或间接的好友,则认为他们属于同一个朋友圈,编程求出这n个人里一共有多少个朋友圈?比如:n=5,m=3,r={{1,2},{2,3},{4,5}},则认为1、2属于一个朋友圈,2、3是一个朋友圈,4、5是一个朋友圈,则1、2、3属于同一个朋友圈,4、5属于另一个朋友圈,共有两个朋友圈。并查集的实现过程并查集是一种树形数据结构,用于...
2019-03-22 15:05:00 309
原创 【Linux】浅析进程池与线程池
前言一、池的引入二、进程池与线程池三、简单线程池的模拟实现池是一种用·空间换时间的行为,比如我们常见的计算机的本地缓存、代理服务器、高速缓存等都是池或池的变种,它有效的避免了不同设备之间的频繁切换,从而提高了运行效率。一、池的引入池是·一组资源的集合,有静态、动态资源分配之分。一组资源在服务器启动之初就完全被创建并初始化,称之为静态资源分配。当服务器运行时,如果需要资源,就可以直接从池中获...
2019-03-21 17:44:04 942
原创 【C语言】容易遗漏的atoi
atoi难就难在很少有人能考虑到它所涉及的各个方面,因此觉得有必要写一篇文章来详细阐述一下令不少程序猿遗憾的atoi。函数原型【头文件】#include <stdlib.h>【函数原型】atoi() 函数用来将字符串转换成整数(int),其原型为int atoi (const char * str);【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(...
2019-03-19 21:13:30 691
转载 【Linux】进程同步方法
进程同步的四种方法1、临界区(Critical Section):通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。优点:保证在某一时刻只有一个线程能访问数据的简便办法缺点:虽然临界区同步速度很快,但却只能用来同步本进程内的线程,而不可用来同步多个进程中的线程。 2、互斥量(Mutex):为协调共同对一个共享资源的单独访问而设计的。互斥量跟临界区很相似...
2019-03-17 18:57:32 2237
转载 【Linux】进程调度算法
前言1. 先来先服务 (FCFS,first come first served)2. 最短作业优先(SJF, Shortest Job First)3. 最高响应比优先法(HRRN,Highest Response Ratio Next)5. 时间片轮转算法(RR,Round-Robin)6. 多级反馈队列(Multilevel Feedback Queue)1. 先来先服务 (FCFS,fi...
2019-03-17 00:51:02 223
转载 【Linux】内存管理
转自: https://www.cnblogs.com/ralap7/p/9184773.html前言进程与内存进程内存空间进程内存管理进程内存的分配与回收如何由虚变实!系统物理内存管理物理内存管理(页管理)内核内存使用内核非连续内存分配(Vmalloc)程序里主要应解决两个问题:摘要:本章首先以应用程序开发者的角度审 视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理...
2019-03-12 00:47:21 192
原创 【Linux】Linux较Window的优越性
前言1. Linux2. Linux系统的特点?3. win系统的特点4. 区别5. 总结:Linux和Windows是两种操作系统,对于服务器运维的人来说,在为服务器选择操作系统系统的时候,是选择Linux还是Windows是让人困惑的事?从用户群来说Linux是一个以开发者为中心的操作系统,而windows是以消费者为中心的操作系统,这也是两个操作系统作为根本的区别。简单来讲,两个系统的选...
2019-03-09 18:18:25 323
原创 【算法精髓】银行家算法
前言一、算法背景二、算法原理三、死锁四、数据结构:五、银行家算法:1. 银行家算法之例:附:参考博客:附: 银行家算法经典教程视频一、算法背景在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还·。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,...
2019-03-09 01:49:44 909
原创 【网络安全】网络安全之密码学
前言一、密码学概述二、密钥体制的分类三、密钥管理四、对称密钥算法五、非对称加密算法六、哈希函数七、消息鉴别码八、数字签名九、HTTPS一、密码学概述现代密码技术及应用已经涵盖数据处理过程的各个环节,如数据加密、密码分析、数字签名、身份识别、零知识证明、秘密分享等。通过以密码学为核心的理论与技术来保证数据的机密性、完整性、可用性等安全属性。机密性指信息不泄漏给非授权的用户、实体或过程;完整...
2019-03-08 19:28:02 7136 1
原创 【网络编程】2019年,你熟悉GET与POST吗?
前言一、标准答案二、GET 和 POST 报文上的区别三、常见问题1. GET 方法参数写法是固定的吗?2. POST 方法比 GET 方法安全?3. GET 方法的长度限制是怎么回事?4. POST 方法会产生两个TCP数据包?5. talk is cheap show me the code参考最近看了一些同学的面经,发现无论什么技术岗位,还是会问到 get 和 post 的区别,而搜索出来...
2019-03-07 00:38:04 327
原创 【Linux】多线程详述
前言一、线程的概念(复习)-铺垫1.理解(Linux平台)2.线程的资源3.线程优点4.线程缺点二、Linux线程ID和进程ID一、线程的概念(复习)-铺垫进程是分配系统资源的基本单位线程是一个标准的进程(一个执行流的进程)Linux线程图解1.理解(Linux平台)线程是在进程的内部运行的:线程是在进程的地址空间内运行的,共享一份虚拟地址空间。线程大部分资源都是共享的。(共用...
2019-03-04 23:25:08 259
原创 【网络编程】HTTP协议之长连接与短链接
前言【话题】:HTTP长连接、短连接究竟是什么?1. HTTP协议与TCP/IP协议的关系2. 如何理解HTTP协议是无状态的3. 什么是长连接、短连接?3.1. TCP连接3.2. TCP短连接3.3. TCP长连接4. 长连接和短连接的优点和缺点5. 什么时候用长连接,短连接?【话题】:HTTP长连接、短连接究竟是什么?1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本...
2019-03-04 20:13:13 598
原创 【笔试集锦】小易
一、俄罗斯方块小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块。因为它比较古老,所以规则和一般的俄罗斯方块不同。荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方块之上,当一整行方块都被占满时,这一行会被消去,并得到1分。有一天,小易又开了一局游戏,当玩到第 m 个方块落下时他觉得太无聊就关掉了,小易希望你告诉他这局游戏他获得的分数...
2019-03-03 21:50:00 388
原创 【网络编程】TCP抓包工具之tcpdump
前言一、 tcpdump选项1. 抓包选项:2. 输出选项:3. 其他功能性选项:二、tcpdump表达式三、tcpdump示例tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包。例如:shell&gt; tcpdump -nn -i ens33 icmp...
2019-03-03 14:32:26 702
原创 【Linux】进程间通信
一、进程间通信目的二、进程间通信种类三、管道四、消息队列五、共享内存1. 共享内存初识在Linux中,每个进程都有属于自己的进程控制块(PCB)和地址地址空间(Addr Space),并且都有一个与之对应的页表,负责将进程的虚拟地址与物理地址进行映射,通过内存管理单元(MMU)进行管理。两个不同的虚拟地址通过页表映射到物理空间的同一块区域,它们所指向的这块区域即共享内存。共享内存是最...
2019-03-02 17:31:29 264
Docker入门到进阶实战
2022-07-08
数据结构课程设计大纲
2018-06-29
数据结构课程设计
2018-06-29
教你如何玩转指针
2018-03-23
指针那些事儿
2018-03-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人