自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

转载 TCP/IP 以及TCP与UDP的区别

TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信! TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。 TCP/IP协议集包括应用层,传

2017-07-13 00:07:27 2641

原创 一级指针与二级指针的使用,以及使用二级指针的场合

首先几个概念: 一级指针: int a; int *p; p = &a; &p//指针所在内存的地址 p//指针p的值,也就是所指向内存区的地址(a的地址) *p//p所指向内存区内的值(a的值) 二级指针: int **q; q = &p//q指向一个指针 &q//指针q所在内存区的地址 q

2017-07-11 17:43:22 1430 1

原创 vector迭代器失效问题

以下这段话来自《C++标准程序库》—第六章STL容器 “vector迭代器失效发生在下列两种情况 (1)使用者在一个较小索引位置上安插和移除操作 (2)由于容量变化而引起内存分配” 要深刻理解这段话并不容易—- 其实这里迭代器失效的两种情况代表了两种不同的失效含义: 1.当在vector中的某一位置安插(v.insert())或移除(v.erase())某个元素时,且当安插操作时

2017-07-04 01:08:07 2252

原创 函数指针的使用,以及使用函数指针的好处

函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。程序在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。很多c++泛型算法以及linux库函数经常见到函数指针的使用。。函数指针的声明:bool (*pf)(int, int); //pf指向一个函数,该函数的参数是两个int,返回值是bool类型函数指针的初始化例如有这样一个

2017-07-03 02:32:48 6762 4

原创 Linux文件IO函数与标准IO库函数

Linux中,文件有为操作系统和设备提供了一个简单而统一的接口。在Linux中,几乎一切都可以看做文件 。 Linux对文件的操作有两种方式文件IO函数(系统调用)和标准IO库函数调用。系统调用是最直接的方式,库函数调用最终也是通过系统调用实现的。可认为库函数调用是对系统调出于效率考虑而做出的优化。 二者区别: 系统调用是操作系统相关的,因此一般没有跨操作系统的可移植性。 库

2017-06-12 16:48:35 2210

原创 0/1背包问题的动态规划分析

0/1背包问题: 简单来说就是,面对体积和价值不同的物品,如果在背包容量下尽可能装价值最多的物品。而且每个物品只有一件,当物品数较多,价值量区别不是那么明显时,这对一个贪财老可是一个巨大的折磨(哈哈),我们如何去解决这样一个问题呢! 假设有一个容量为10的背包 另外有五个供选择的物品编号为:1 2 3 4 5     物品的重量(w)分别为:2 2 6 5 4     物品的价

2016-11-17 19:06:41 896

原创 几种常用的排序算法(冒泡,插入排序,希尔排序,快速排序)

#include #include using namespace std;/*    冒泡排序    冒泡排序总的比较次数为:(n-1)+(n-2)...+1=n*(n-1)/2    时间复杂度:O(n^2)(数量级)*/void bubble_sort(int arr[], int n){    int temp;    for(int i=0

2016-11-17 11:34:50 1678

原创 二叉搜索树与平衡二叉树

二叉树也是一种树,适用与以上的全部操作,但二叉搜索树能 够实现数据的快速查找 性质: 非空左子树的所有键值小于其根节点的键值 非空右子树的所有键值大于其根节点的键值 左右子树都是二叉搜索树以下代码实现了二叉树 的插入、查找操作。。并给出了一个《剑指offer》上的一道笔试题:查找一个二叉搜索树中第k小的元素。

2016-11-08 21:57:09 7328 1

原创 二叉树(创建、遍历、树的最大深度和最小深度)

我们利用链表来实现一个二叉树,其实一般的二叉树用处并不大,后面会引申出二叉搜索树,红黑树,堆等。。再此我们只需要掌握如何对二叉树进行遍历,首先我们用前序遍历的方法创建一个二叉树,然后研究其遍历方法(递归),只给出了中序遍历,其他遍历方法类似,交换一下顺序即可。另外,还需要了解一些其他对树的操作,再此举一个《剑指offer》上的一个笔试题,即给出一个树,求出树的最大深度和最小深度。

2016-11-08 21:29:44 3858

原创 堆的实现-用数组表示的完全二叉树

堆时一种具有优先级的队列,取出元素的顺序按照元素的优先级 堆若用数组和链表,二者的插入时间复杂度为O(1),删除时间复杂度为O(N) 若用有序数组或有序链表,插入操作所需时间均为O(N),删除操作所需时间复杂度为O(1) 更为理想的堆实现方式为:用数组表示的完全二叉树. 另外将该完全二叉树调整为任何父结点都比左子树和右子树的元素大(最大堆) 我们来看以下这样实现的好处: 插入操作:

2016-11-08 17:44:36 2363

原创 链表使用: 两个有序链表序列的合并

本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode

2016-10-26 16:05:59 8519 4

空空如也

空空如也

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

TA关注的人

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