自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(35)
  • 收藏
  • 关注

转载 实现网络连通检测的五种方法

方法一: windows下调用icmp.dll库,实现ping连通检测,缺点是不能跨平台,受限于icmp.dll库: // windows下调用icmp.dll库实现网络连通检测示例代码 #include <Winsock2.h> #include <iphlpapi.h> #include <stdio.h> #pragma comm...

2019-04-04 14:09:00 2102

转载 最小堆实现哈夫曼树构造

0. 序 本以为用最小堆实现个哈夫曼树是个简单的事情,结果一不小心就花了好几个小时才写完。。。实现过程中主要有三个方面的问题没注意,导致花了很多时间进行调试。 一是多重指针malloc分配时要多加注意; 二是指针一定要记得初始化,默认不一定为NULL; 三是结构体赋值问题。 其余的边界问题小心就好了。。另,由于本人水平有限,如有任何问题,欢迎指出解决,谢谢大家!详细结果如下: 1...

2018-07-19 13:16:00 1730

转载 最小堆的基本操作实现

1. 最小堆结构定义如下: // 定义最小堆结构 struct MinHeap { int* p; // 存储元素的数组 int size; // 当前元素个数 int capacity; // 最大容量 }; 2. 最小堆的基本操作函数如下: MinHeap* createMinHeap(int capacity); // 创建最小堆 bo...

2018-07-18 16:54:00 757

转载 二叉搜索树的基本操作实现

1. 二叉搜索树结点结构定义如下: // 二叉搜索树节点定义 struct TreeNode { int data; TreeNode* lChild; TreeNode* rChild; TreeNode(int val) : data(val), lChild(NULL), rChild(NULL) {} }; 2. 二叉搜索树的基本操作函数如下: ...

2018-07-16 21:59:00 195

转载 LeetCode:两数之和

C++示例程序: class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { int length = nums.size(); vector<int> result; unordered_ma...

2018-07-07 21:38:00 131

转载 LeetCode:移动零

C++示例程序: class Solution { public: void moveZeroes(vector<int>& nums) { int number = 0; int length = nums.size(); for(int i = 0; i < length; i++) { ...

2018-07-07 21:37:00 159

转载 LeetCode:两个数组的交集 II

C++示例程序: class Solution { public: vector<int> intersect(vector<int>& nums1, vector<int>& nums2) { vector<int> result; unordered_map<int, in...

2018-07-07 21:35:00 122

转载 LeetCode:只出现一次的数字

C++示例程序: class Solution { public: int singleNumber(vector<int>& nums) { int length = nums.size(); if (length == 0 || length == 2) return 0; for...

2018-07-07 21:34:00 104

转载 LeetCode:存在重复

C++示例程序: class Solution { public: bool containsDuplicate(vector<int>& nums) { unordered_map<int, int> um; for (int i = 0; i < nums.size(); ++i) { ...

2018-07-07 21:33:00 112

转载 LeetCode:旋转数组

C++示例程序: class Solution { public: void rotate(vector<int>& nums, int k) { int length = nums.size(); if (length <= 1 || k < 0) return; k ...

2018-07-07 21:30:00 90

转载 LeetCode:买卖股票的最佳时机 II

C++示例程序: class Solution { public: int maxProfit(vector<int>& prices) { int profit = 0; for (int i = 1; i < prices.size(); i++) { if (prices[i] - pric...

2018-07-07 21:29:00 95

转载 LeetCode:从排序数组中删除重复项

C++示例程序: class Solution { public: int removeDuplicates(vector<int>& nums) { if (nums.empty()) { return 0; } int number = 0; for (int ...

2018-07-07 21:27:00 98

转载 最大堆的基本操作实现

1. 最大堆结构定义如下: // 最大堆结构定义 struct MaxHeap { int* p; // 存储堆元素的数组 int size; // 堆当前元素个数 int capacity; // 堆的最大容量 }; 2. 最大堆的基本操作函数如下: MaxHeap* createMaxHeap(int capacity); // 创建最大堆 boo...

2018-07-07 17:10:00 174

转载 二叉树的基本操作实现

1. 二叉树结点结构定义如下: // 树节点定义 struct TreeNode { int data; TreeNode* lChild; TreeNode* rChild; }; 2. 二叉树的基本操作函数如下: TreeNode* createBinTree(); // 先序创建二叉树(递归) void preOrderTraverse(TreeNode*...

2018-07-05 16:26:00 187

转载 链栈的基本操作实现

1. 链栈含头结点模型示意图如下: 2. 链栈结构定义如下: struct StackNode { int data; StackNode* next; }; 3. 链栈的基本操作函数如下: StackNode* createStack(); // 创建栈头结点 void Push(StackNode* head, int item); // 入栈 int Pop(S...

2018-07-05 15:09:00 801

转载 顺序栈的基本操作实现

1. 顺序栈模型示意图如下: 2. 顺序栈结构定义如下: #define MAXSIZE 10 struct StackNode { int data[MAXSIZE]; int top; }; 3. 顺序栈的基本操作函数如下: StackNode* createStack(); // 创建空栈 void Push(StackNode* stack, int ite...

2018-07-05 13:40:00 875

转载 链队列的基本操作实现

1. 链队列含头结点模型示意图如下: 2. 链队列结构定义如下: // 结点类型 struct QueueNode { int data; QueueNode* next; }; // 链队列结构 struct LinkQueue{ QueueNode* front; QueueNode* rear; }; 3. 链队列的基本操作函数如下: Link...

2018-07-05 13:40:00 1205

转载 LeetCode:合并两个有序链表

C++示例: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ...

2018-07-05 00:00:00 89

转载 LeetCode:反转链表

C++示例: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ...

2018-07-04 23:58:00 98

转载 LeetCode:删除链表的倒数第N个节点

C++示例: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ...

2018-07-04 23:55:00 98

转载 LeetCode:删除链表中的节点

C++示例: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ...

2018-07-04 23:50:00 101

转载 单链表的基本操作实现

1. 单链表含头结点模型示意图如下: 2. 单链表节点结构定义如下: struct ListNode { int val; ListNode* next; ListNode(int x) : val(x), next(NULL) {} }; 3. 单链表的基本操作函数如下: ListNode* createList(); // 手动输入创建一个链表 void ...

2018-07-03 23:28:00 308

转载 C/C++程序中常见的与内存有关的错误

1. 间接引用坏指针 int main() { int val; scanf("%d", val); // Error! scanf("%d", &val); // Ok! return 0; } 2. 读未初始化的内存 int main() { int n = 10; int* y = (int*) malloc(n * siz...

2018-06-25 22:06:00 245

转载 C++:一些常见知识点的区别(整理)

struct与class的区别 C语言中struct与class的区别:struct只作为一种复杂数据类型定义的结构体,不能用于面向对象编程;C语言没有class关键字。 C++语言中struct与class的区别:对于成员访问权限以及继承方式,class默认都是private,struct默认是public;class可以用于表示模板类型,struct不行;一般来说,用到继承时常用c...

2018-06-15 16:43:00 170

转载 TCP的传输连接管理

TCP传输连接管理概述 TCP传输连接有三个阶段,即:连接建立(三次握手)、数据传送和连接释放(四次挥手)。 TCP连接建立都是采用客户服务器方式。 主动发起连接建立的应用进程叫做客户(client)。 被动等待连接建立的应用进程叫做服务器(server)。 TCP的三次握手 TCP连接过程中常见符号意义如下: SYN---同步标记,当SYN=1,ACK=0时,表明这是一个连接请...

2018-06-15 04:30:00 548

转载 C++:三种类间关系

Inheritance(继承) - 表示 is-a ,如下代码所示: class A { private: int a; }; class B : public A { private: int b; }; - 继承关系下的构造和析构: 构造由内而外 Derived的构造函数首先调用Base的default构造函数,然后才执行自己。...

2018-05-29 23:49:00 172

转载 C++:内存泄漏与内存溢出的区别

内存溢出(out of memory):是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory; 例如申请了一个int型的地址空间,但给它存放了long型的数据,就会导致内存溢出。 内存泄漏(memory leak):是指程序申请内存后,无法释放已申请的内存空间,内存泄漏多了会导致可用内 存空间变小,进一步造成内存溢出。 转载于:https://w...

2018-05-23 16:49:00 182

转载 C++:堆和栈的区别

(1)管理方式:堆中资源由程序员控制(通过malloc/free、new/delete,容易产生memory leak),栈资源由编译器自动管理。 (2)系统响应:对于堆,系统有一个记录空闲内存地址的链表,当系统收到程序申请时,遍历该链表,寻找第一个大于所申请空间的空间的堆结点,删除空闲结点链表中的该结点,并将该结点空间分配给程序(大多数系统会在这块内存空间首地址记录本次分配的大...

2018-05-17 02:01:00 188

转载 C++:五种内存分配区域

C/C++编译的程序所占用内存区域一般分为以下5个部分: 栈区(stack):由编译器自动分配和释放,用来存放函数的参数、局部变量等。其操作方式类似于数据结构中的栈。 堆区(heap):一般由程序员分配和释放(通过malloc/free、new/delete),若程序员没有释放,则程序结束时由操作系统回收。它与数据结构中的堆是两回事,分配方式类似于链表。 全局/静态...

2018-05-17 01:08:00 207

转载 C++:struct与class的区别

(1)C语言中struct与class的区别:struct只作为一种复杂数据类型定义的结构体,不能用于面向对象编程;C语言没有class关键字。 (2)C++语言中struct与class的区别:对于成员访问权限以及继承方式,class默认都是private,struct默认是public;class可以用于表示模板类型,struct不行;一般来说,用到继承时常用class,没用...

2018-05-17 00:18:00 136

转载 C++:指针与引用的区别

(1)指针是一个实体,有分配内存空间,引用只是一个别名,不分配内存空间 (2)指针不用但最好初始化,引用必须初始化 (3)引用只能初始化一次,指针可以多次赋值 (4)可以有const指针,但没有const引用,例如 int* const p合法,int& const p有些编译器会报错,有些编译器会警告并忽视该const修饰符 (5)指针可以指向空值,引用不能指向空...

2018-05-16 23:48:00 94

转载 C++:new与malloc的区别

1.属性 new/delete是操作符,是C++关键字,需要编译器支持;malloc/free是库函数,需要头文件支持。 2.参数 使用new操作符动态分配内存时无需指定内存块大小,编译器会根据类型自行计算;malloc分配内存时需要显式地指出所需内存块大小。 3.返回类型 new操作符内存分配成功时会返回相应对象类型的指针,无需进行强制类型转换,符合类型安全性,分配失败...

2018-05-08 12:27:00 110

转载 ROS:使用Qt Creator创建GUI程序(三)之stellax_gui_ws源码编译

开发环境: Ubuntu14.04 ROS indigo version Qt Creator 3.0.1 based on Qt 5.2.1 ROS相关包安装:参照ros_by_example(indigo)书中第五章,安装必要的包: $ sudo apt-get install ros-indigo-turtlebot-bringup \ ros-indigo-turtle...

2018-05-07 14:22:00 194

转载 ROS:使用Qt Creator创建GUI程序(二)

开发环境: Ubuntu14.04 ROS indigo version Qt Creator 3.0.1 based on Qt 5.2.1 步骤如下:(前提:成功完成ROS:使用Qt Creator创建GUI程序(一)中所有步骤) ①关闭所有终端 ②打开新的终端,输入下述命令: $ qtcreator ③重复“ROS:使用Qt Creator创建GUI程序(一)”中启...

2018-05-07 14:09:00 444

转载 ROS:使用Qt Creator创建GUI程序(一)

开发环境: Ubuntu14.04 ROS indigo version Qt Creator 3.0.1 based on Qt 5.2.1 步骤如下:(按照下面命令一步步来,亲测可行) (一)安装qt-ros相关的包打开终端,输入下面的命令: $ sudo apt-get install ros-indigo-qt-create $ sudo apt-get insta...

2018-05-06 22:33:00 387

空空如也

空空如也

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

TA关注的人

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