自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 判断单链表是否带环,环的入口位置?

当我们做链表的编程题时,经常会遇到给定一个单链表(头结点)判断单链表知否带环等如下的问题。 1. 判断链表是否带环? 2. 环的入口位置在哪里? 3. 环的长度是多少。问题1: 首先要判断一个链表是否带环,我们可以分别考虑一下带环和不带环两种情况的区别。如果链表不带环,我们用一个指针从头遍历到尾 指针最终会指向一个NULL 。如果链表带环指针一旦进入环就会一直循环遍历,这样就会陷入

2017-09-01 13:40:05 745 2

原创 排序算法总结

在程序中当我们需要对数据进行排序时,会面临很多排序算法,这个时候对排序算法的选择多种多样。下面我们列出以下一些常用的排序算法。 常用的排序算法有: 冒泡排序 选择排序 插入排序 快速排序 归并排序 堆排序 希尔排序 1. 冒泡排序(Bubble Sort) 基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往

2017-08-20 19:11:51 397

原创 网络编程面试题

1.OSI七层模型和TCP/IP四层模型 OSI七层模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 TCP/IP四层模型 应用层 传输层 网际互联层 网络接口层 对应关系(图示) 2.tcp和udp的区别(1)TCP和UDP都是传输层协议,TCP是面向连接的传输(通过三次握手保证有连接),UDP是无连接的传输。 (2)TCP是面向字节流的传输,他可以将信息分割成

2017-08-12 17:00:04 678

原创 迭代器失效

在STL容器中,经常会出现迭代器失效导致程序运行时崩溃,那迭代器究竟是如何失效的呢? 迭代器(iterator)是一个可以对其执行类似指针的操作(如:解除引用(operator*())和递增(operator++()))的对象,我们可以将它理解成为一个指针。但它又不是我们所谓普通的指针,我们可以称之为广义指针,你可以通过sizeof(vector::iterator)来查看,所占内存并不是

2017-08-10 20:35:55 481

原创 内存对齐详解

首先定义两个结构体如下,我们看一下两个结构体大小:#include <iostream>using namespace std;struct A{ int a; char b; short c;};struct B{ char b; int a; short c;};int main(){ cout <<"sizeof(struct

2017-08-09 23:08:45 1432 3

原创 C/C++面试常考关键字

C/C++面试常考关键字总结1.static关键字的作用? 1)、static 申明的变量为静态全局变量,该变量存储在静态数据区,当整个程序结束时该变量才会被释放,只是生命周期延长,作用域不受影响。 2)、static申明的变量定义时如果不初始化默认初始化为0 3)、被static修饰的变量只能作用于本文件内,即使被extern修饰也不行2.const,define的区

2017-08-08 20:43:32 4272

原创 浅析volatile关键字

为什么会有volatile关键字呢? 首先我们先来了解一下程序优化处理 程序优化处理的主要方法: (1)由于CPU的处理速度远远大于内存的读写速度,为提高整体性能,在硬件上引入硬件高速缓存Cache,就加速对内存的访问。 (2)CPU中指令的执行顺序,如果没有相关性的指令可以乱序执行,这样一便可以充分利用CPU的指令流水线,提高执行速度。 (3)编译器自动对程序进行优化。编译器优化常用的方

2017-08-08 20:28:29 422

原创 用Huffman树实现文件压缩与解压

用Huffman树实现文件的压缩与解压 我们先来了解一下什么是Huffman树? 我们平常所使用的Zip等压缩工具都是借助Huffman树实现的,Huffman是一种特殊的二叉树,它是一种加权路径最短的二叉树, 因此也称为最优二叉树。 (下面用一幅图来说明) 它们的带权路径长度分别为:图1: WPL=3*2+4*2+2*2+10*2=48 图2: WPL=3*3+2*3+4*

2017-08-07 19:22:21 3508 1

原创 IO多路复用

IO多路复用技术,什么是IO多路复用技术,IO多路复用中select、poll、epoll的区别。IO模型的分类及区别。

2017-08-05 16:34:17 807 2

原创 C语言贪吃蛇

C语言实现简易版的贪吃蛇,不到100行代码实现简易版贪吃蛇,有详细实现流程说明,简捷易懂,适合初期学习游戏编程的伙伴。

2017-08-05 11:39:41 1816

原创 C++常用数据类型转换的区别

C++常用数据类型转换的区别,static_cast 、dynamic_cast、const_cast、 reinterpret_cast的使用方法以及区别。

2017-08-04 00:16:12 579

原创 虚析构函数的作用

为什么基类的析构函数最好声明为虚函数?基类的虚函数声明为虚函数有什么作用?为什么将基类的析构函数声明为虚函数就可以很好的避免内存泄漏这一问题呢?

2017-08-03 21:27:47 420

原创 String类的实现

String类的实现,用深拷贝引用计数分别实现C++string类,string类的相关运算符重载。

2017-08-01 20:33:38 469

原创 C++三大特性封装继承多态

C++三大特性封装继承多态,继承方式方法,多态实现的必要条件 , 函数重载、覆盖(重写),隐藏(重定义)的区别。

2017-08-01 20:11:40 1570

原创 TCP网络服务器模型

TCP网络服务器,循环服务器与比并发服务器的实现,实时服务器模型的选择,以及两者之间的区别和优缺点。

2017-07-23 16:34:24 513

原创 UDP广播与组播通信

广播与组播通信实现流程,广播方式发送给所有主机。组播又称为多播,是一种折中的方式,只有加入某个多播组的主机才能就收到数据。

2017-07-21 22:27:15 823

原创 进程间通信

进程间通信方法以及实现流程,用有名管道,无名管道,信号量,共享内存,信号灯实现进程间通信实现父子进程通信以及无血缘关系的进程通信。

2017-07-19 22:00:45 819

原创 TCP服务器客户端网络通信

TCP的服务器和客户端通信

2017-07-18 23:20:51 615

原创 TCP三次握手四次挥手

TCP三次握手四次挥手的实现流程 为什么有三次握手四次挥手

2017-07-18 23:02:07 2535

原创 Linux链接文件之软连接硬链接

通过软连接和硬链接生成的链接文件和源文件的关系以及删除源文件对链接文件的影响

2017-05-26 17:08:17 635

原创 按单词逆序打印字符串

按单词逆序字符串,例如输入How are you ,输出为 you are How 先逆序单词,再逆序整个字符串。

2017-05-23 09:33:30 1359

原创 标准IO和文件IO

标准IO和文件IO的区别 标准IO带缓冲机制,文件IO不带缓冲机制。文件IO和标准IO的函数实现

2017-05-19 14:54:46 652

原创 标准I/O流

用fgetc()和fputc()实现文件拷贝(文件复制),FILE结构体也称为流(Stream),标准I/O预定了三个流。

2017-05-17 15:35:13 651

原创 二叉树算法

二叉树的遍历算法1.先序遍历对每一个节点将其看作根节点按照根左右的顺序进行遍历。示例代码void _PreOrderTree(Node* root)            //先序遍历二叉树 {  if (root != NULL)  {   cout _data    _PreOrderTree(root->left);   _PreOrderTree(r

2017-04-08 20:22:51 285

空空如也

空空如也

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

TA关注的人

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