<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hmh86的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hmh86</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hmh86]]></copyright><item><title><![CDATA[redis 学习笔记]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/79867546</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/79867546</guid><author>hmh86</author><pubDate>Mon, 09 Apr 2018 17:12:49 +0800</pubDate><description><![CDATA[    redis是一个key-value存储系统。和Memcached类似，它支持存储的value类型相对更多，包括string(字符串)、list（链表)、set(集合)、zset(sorted set --有序集合)和hash（哈希类型）。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作，而且这些操作都是原子性的。在此基础上，redis支持各种不同方式...]]></description><category></category></item><item><title><![CDATA[Android  应用程序框架]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/74614076</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/74614076</guid><author>hmh86</author><pubDate>Thu, 06 Jul 2017 22:19:15 +0800</pubDate><description><![CDATA[应用程序框架可以说是一个应用程序的核心，是所有参与开发的程序员共同使用和遵守的约定，大家在其约定上进行必要的扩展，但程序始终保持主体结构的一致性。其作用是让程序保持清晰和一目了然，在满足不同需求的同时又不互相影响。 开发应用时都是通过框架来与Android底层进行交互，接触最多的就是应用框架层。




Android分为应用层、应用框架层、系统运行库层和Linux内核层。我们在开发应用]]></description><category></category></item><item><title><![CDATA[Android 体系结构]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/74613364</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/74613364</guid><author>hmh86</author><pubDate>Thu, 06 Jul 2017 22:13:04 +0800</pubDate><description><![CDATA[Android的系统架构采用了分层架构的思想，如图1所示。从上层到底层共包括四层，分别是应用程序程序层、应用框架层、系统库和android行时和Linux内核。



一 应用程序层
      该层提供一些核心应用程序包，例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时，开发者可以利用Java语言设计和编写属于自己的应用程序，而这些程序与那些核心应用程序彼此平等、友好共处。]]></description><category></category></item><item><title><![CDATA[Android 多线程下载实现思路]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/74613175</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/74613175</guid><author>hmh86</author><pubDate>Thu, 06 Jul 2017 22:04:37 +0800</pubDate><description><![CDATA[Android 多线程下载实现思路是

         (1)首先获得下载文件的长度，然后设置本地文件的长度。



    
  HttpURLConnection.getContentLength();//获取下载文件的长度

   
  RandomAccessFile file = new RandomAccessFile("QQWubiSetup.exe","rwd]]></description><category></category></item><item><title><![CDATA[SQLite 数据库简介]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/73496671</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/73496671</guid><author>hmh86</author><pubDate>Tue, 20 Jun 2017 13:09:50 +0800</pubDate><description><![CDATA[SQLit是一个轻量级数据库，第一个版本诞生于2000年5月。它最初是
 为嵌入式设计的，占用资源非常低，在内存中只需要占用几百KB的存储空间。 SQLite是遵守ACID关联式的数据库管理系统。ACID是指数据库事务正确执行的基本要素，即原子性（Atomicity）、一致性（Consistency）、隔离性（Isolation）、持久性（Durability）。SQLite没有服务器进程，它通]]></description><category></category></item><item><title><![CDATA[用volley框架进行网络访问]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/73496468</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/73496468</guid><author>hmh86</author><pubDate>Tue, 20 Jun 2017 12:53:02 +0800</pubDate><description><![CDATA[Volley是Andeoid平台上的网络通信库，能使网络通信更快，更简单，更健壮。Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身，
既可以像AsyncHttpClient一样非常简单地进行HTTP通信，也可以像Universal-Image-Loader一样轻松加载网络上的图片。以下为用volley框架进行网络访问实例代码
 ]]></description><category></category></item><item><title><![CDATA[通过api使用HttpURLConnection 获取返回天气数据。]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/73495697</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/73495697</guid><author>hmh86</author><pubDate>Tue, 20 Jun 2017 12:38:35 +0800</pubDate><description><![CDATA[以下是核心代码
//严苛模式
if (android.os.Build.VERSION.SDK_INT > 9) {
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
}

H]]></description><category></category></item><item><title><![CDATA[哈希表的实现  除留余数法]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53976799</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53976799</guid><author>hmh86</author><pubDate>Mon, 02 Jan 2017 11:31:44 +0800</pubDate><description><![CDATA[查找有两种方式，比较式查找和计算式查找，而计算式查找则通过哈希表来实现。给定表M，存在函数f(key)，对任意给定的关键字值key，代入函数后若能得到包含该关键字的记录在表中的地址，则称表M为哈希(Hash）表，函数f(key)为哈希(Hash) 函数；更通俗来说，哈希表通过把关键码值映射到表中一个位置来访问记录，以加快查找的速度。这里用除留余数法来构造哈希表和开放地址法中的线性探测再散列来处理不同]]></description><category></category></item><item><title><![CDATA[基于二叉排序树的基本操作]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53841187</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53841187</guid><author>hmh86</author><pubDate>Fri, 23 Dec 2016 16:24:48 +0800</pubDate><description><![CDATA[二叉排序树或者是一棵空树，或者是具有下列性质的二叉树：
（1）若左子树不空，则左子树上所有结点的值均小于或等于它的根节点的值；
（2）若右子树不空，则右子树上所有结点的值均大于或等于它的根结点的值；
（3）左、右子树也分别为二叉排序树；
以下为二叉排序树的实例和结点结构

//二叉排序树的结点结构
typedef struct Node{
   ElemType val;
   str]]></description><category></category></item><item><title><![CDATA[页面置换算法 FIFO和LRU 及各自的命中率]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53691060</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53691060</guid><author>hmh86</author><pubDate>Fri, 16 Dec 2016 11:30:18 +0800</pubDate><description><![CDATA[(1) 先进先出算法FIFO：该算法的实质是选择作业中在主存驻留时间最长的一页淘汰，这种算法容易实现，例如分配一个作业的存储块数为m，则只需建立一张m个元素的队列表Q(0)、Q(1)、…、Q(m-1)和一个替换指针。这个队列是按页调入主存的一页。如图4-1所示，某时刻调入主存四个块，（即m=4），它们按页进入主存的先后顺序为4、5、1、2，当需要置换时，总是淘汰替换指针所指向的那一页， 新调进的页]]></description><category></category></item><item><title><![CDATA[图的邻接表表示及深度优先搜索和广度优先搜索 prim求最小生成树]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53672907</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53672907</guid><author>hmh86</author><pubDate>Thu, 15 Dec 2016 17:11:23 +0800</pubDate><description><![CDATA[邻接表表示图的基本思想是只存储相关信息，适合存储稀疏图，由表头结点表和边表两部分组成。对图中的每个顶点建立一个带头结点的边链表，每个边链表的头结点又构成一个表头结点表，具体结构如下

以下为存储结构
typedef char ElemType;
//边表结点
typedef struct ArcNode{
   int adjvex;  //该弧指向定点的位置
   struct ArcNo]]></description><category></category></item><item><title><![CDATA[求有向网中任意一对顶点之间的最短路径 Floyd算法]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53672091</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53672091</guid><author>hmh86</author><pubDate>Thu, 15 Dec 2016 16:31:02 +0800</pubDate><description><![CDATA[有向网中欲知任意一对顶点之间的最短路径常用Floyd算法，基本思想是任意一对顶点vi与vj，逐步在其中加入一个中间节点v0,..,vk,...vn，若比原路径短则更新最短路径，经过n次比较和修正后，vi到vj的最短路径可以求出。具体代码及相关注释如下
//floyd求任意顶点间的最短路径
#include
#define N 20//最大顶点数
#define INF 10000
typedef]]></description><category></category></item><item><title><![CDATA[c语言实现端口扫描程序]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53647525</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53647525</guid><author>hmh86</author><pubDate>Wed, 14 Dec 2016 21:39:00 +0800</pubDate><description><![CDATA[向指定的ip和端口发起请求，若该ip端口出于工作状态，则能成功连接，不能则说明端口已关闭。#include 
#include 

#define DEST_IP "127.0.0.1"

#define DEST_PORT 1434

int main()
{
    //初始化WinSock
    WORD wVersionRequested = MAKEWORD(2,2);
    WSA]]></description><category></category></item><item><title><![CDATA[求图的邻接表表示法的单源最短路径 Dijkstra算法]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53642752</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53642752</guid><author>hmh86</author><pubDate>Wed, 14 Dec 2016 17:35:53 +0800</pubDate><description><![CDATA[要求带权有向图中某一顶点到其他各顶点的最短路径，常用Dijkstra算法，该算法基本思想是，先将图的顶点分为两个集合，一个为已求出最短路径的终点集合（开始为原点v1），另一个为还未求出最短路径的顶点集合（开始为除v1外的全部结点），然后按最短路径长度的递增顺序逐个将第二个集合的顶点加到第一组中。
       
        算法中使用dist数组，dist[i]表示目前已经找到、v1到vi]]></description><category></category></item><item><title><![CDATA[c语言实现ping]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53337118</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53337118</guid><author>hmh86</author><pubDate>Fri, 25 Nov 2016 16:54:58 +0800</pubDate><description><![CDATA[在dos输入ping+主机名可以知道主机是否可达，这是网际控制报文协议ICMP的一个应用，为了更有效的转发IP数据报和提高交付成功机会，封装在ip数据包中的ICMP允许主机或路由器报告差错情况和提供异常情况的报告。更具体点的，向目的主机发送ICMP回送请求报文，收到此报文的主机必须向源主机或路由器发送ICMP回送回答报文。ICMP的报文格式是，常见的ICMP报文类型如下图

要模拟ping的过]]></description><category></category></item><item><title><![CDATA[二叉树的创建及线索化]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53336892</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53336892</guid><author>hmh86</author><pubDate>Fri, 25 Nov 2016 16:50:12 +0800</pubDate><description><![CDATA[在下图这样的存储结构中，指向前驱和后继结点的指针称为线索，对二叉树以某种次序进行遍历并且加上线索的过程称为线索化，线索化了的二叉树称为线索二叉树。


以下为中序线索化二叉树的程序
//线索二叉树及遍历
#include

typedef char Elemtype;

typedef struct Node{
    Elemtype data;
    struct Node *LCh]]></description><category></category></item><item><title><![CDATA[undefined reference to `inet_addr'和undefined reference to `inet_addr@4'的解决办法]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53151710</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53151710</guid><author>hmh86</author><pubDate>Sun, 13 Nov 2016 20:46:46 +0800</pubDate><description><![CDATA[c语言中inet_addr()的功能是将一个点分十进制的IP转换成一个长整数型数unsigned long类型，编译时容易出undefined reference to `inet_addr'错误，原因是未导入相应的头文件，解决办法导入相应的头文件即可，#include 。导入之后也可能出现undefined reference to `inet_addr@4'错误，原因是缺少相应的类库，如下图导]]></description><category></category></item><item><title><![CDATA[二叉树的创建及遍历]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53115358</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53115358</guid><author>hmh86</author><pubDate>Thu, 10 Nov 2016 15:30:56 +0800</pubDate><description><![CDATA[对任意的二叉树的结点结构都可以设置为如下结构，leftChild指向该结点的左孩子，rightChild指向右孩子，data域记录结点信息，以此结点结构形成的二叉树称为二叉链表。

存储结构类型为
typedef char Elemtype;
typedef struct Node{
   Elemtype data;
   struct Node * LChild;
   struct N]]></description><category></category></item><item><title><![CDATA[用链栈实现任意进制的转化]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53018444</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53018444</guid><author>hmh86</author><pubDate>Thu, 03 Nov 2016 09:56:41 +0800</pubDate><description><![CDATA[任意进制的转化基本思路是以十进制为中转，先将其他进制转为十进制，再由十进制转目的进制
/* 栈的结构类型 */
typedef char ElemType;
typedef struct Stack{
   ElemType elem[N];
   int top;
}Stack;
//初始化栈
void InitStack(Stack *S){
   S->top=-1;
}
//出栈
voi]]></description><category></category></item><item><title><![CDATA[十字链表储存稀疏矩阵及矩阵相乘]]></title><link>https://blog.youkuaiyun.com/hmh86/article/details/53018113</link><guid>https://blog.youkuaiyun.com/hmh86/article/details/53018113</guid><author>hmh86</author><pubDate>Thu, 03 Nov 2016 09:28:11 +0800</pubDate><description><![CDATA[在进行矩阵的加法、减法和乘法等运算时，用十字链表表示稀疏矩阵比用三元组表示更灵活，以下为结构图和代码]]></description><category></category></item></channel></rss>