<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[XD_Liu的博客]]></title><description><![CDATA[。]]></description><link>https://blog.youkuaiyun.com/XD_Liu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; XD_Liu]]></copyright><item><title><![CDATA[nginx内存管理]]></title><link>https://blog.youkuaiyun.com/XD_Liu/article/details/79313577</link><guid>https://blog.youkuaiyun.com/XD_Liu/article/details/79313577</guid><author>XD_Liu</author><pubDate>Sun, 11 Feb 2018 22:09:58 +0800</pubDate><description><![CDATA[首先，我们来看看它几个主要的数据结构：



//ngx内存池的头部信息
struct ngx_pool_s {
    ngx_pool_data_t       d;      //数据区域
    size_t                max;    //最大每次可分配内存
    ngx_pool_t           *current;//指向当前的内存池指针地址
    ngx...]]></description><category></category></item><item><title><![CDATA[i++与++i]]></title><link>https://blog.youkuaiyun.com/XD_Liu/article/details/78618319</link><guid>https://blog.youkuaiyun.com/XD_Liu/article/details/78618319</guid><author>XD_Liu</author><pubDate>Thu, 23 Nov 2017 19:41:37 +0800</pubDate><description><![CDATA[前置++与后置++的区别]]></description><category></category></item><item><title><![CDATA[内联函数]]></title><link>https://blog.youkuaiyun.com/XD_Liu/article/details/78617298</link><guid>https://blog.youkuaiyun.com/XD_Liu/article/details/78617298</guid><author>XD_Liu</author><pubDate>Thu, 23 Nov 2017 17:42:37 +0800</pubDate><description><![CDATA[这里写代码片在c++中，我们经常用函数将一些功能封装起来，对外只提供一个简单的函数接口。例如：int sum(int a,int b){return a+b;} 
这样做的好处是便于理解和调用，不用在每次需要的时候重写代码，并且在要进行修改时，修改函数可要比一条一条找代码并修改方便得多。 
但是它的缺点也是很大的，因为它有标准的函数栈帧的开辟和回退，当函数被频繁调用时会造成很大的调用开销，降低程序的]]></description><category></category></item><item><title><![CDATA[约瑟夫环]]></title><link>https://blog.youkuaiyun.com/XD_Liu/article/details/78166459</link><guid>https://blog.youkuaiyun.com/XD_Liu/article/details/78166459</guid><author>XD_Liu</author><pubDate>Fri, 06 Oct 2017 18:49:32 +0800</pubDate><description><![CDATA[已知n个人(以编号1，2，3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数，数到m的那个人出列;他的下一个人又从1开始报数，数到m的那个人又出列;依此规律重复下去，直到圆桌周围的人全部出列。
void insert_tail(link_node *phead, elem_type val)        //创建循环链表
{
link_node *new_node = (lin]]></description><category></category></item><item><title><![CDATA[二叉树的遍历]]></title><link>https://blog.youkuaiyun.com/XD_Liu/article/details/78165877</link><guid>https://blog.youkuaiyun.com/XD_Liu/article/details/78165877</guid><author>XD_Liu</author><pubDate>Fri, 06 Oct 2017 16:38:12 +0800</pubDate><description><![CDATA[最近正在学习二叉树，拿出来练习一下。


1、前序遍历：A B C D E F G H
void PreOrder(BtNode *ptr)
{
if (ptr != NULL)         //访问根结点，判断是否为空
{
printf("%c ", ptr->data);          //打印该结点
PreOrder(ptr->leftchild);]]></description><category></category></item><item><title><![CDATA[数据结构-排序（学习笔记）]]></title><link>https://blog.youkuaiyun.com/XD_Liu/article/details/78165441</link><guid>https://blog.youkuaiyun.com/XD_Liu/article/details/78165441</guid><author>XD_Liu</author><pubDate>Fri, 06 Oct 2017 15:33:16 +0800</pubDate><description><![CDATA[上课的时候老师就说排序很重要。最近又翻了翻《大话数据结构》和笔记,增强下记忆。
先说下几种排序的关系：
（盗个图）

1、冒泡排序：一种交换排序，基本思路是相邻的两两比较，反序则交换，直到没有反序为止。
void swap(int *p, int *q)
{
int temp = *p;
*p = *q;
*q = temp;
}


void bubble_sort(i]]></description><category></category></item><item><title><![CDATA[二叉树的基本操作]]></title><link>https://blog.youkuaiyun.com/XD_Liu/article/details/78073242</link><guid>https://blog.youkuaiyun.com/XD_Liu/article/details/78073242</guid><author>XD_Liu</author><pubDate>Sat, 23 Sep 2017 20:39:04 +0800</pubDate><description><![CDATA[在计算机科学中，二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”（left subtree）和“右子树”（right subtree）。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。
特点：
1、每个节点最多有两颗子树，所以二叉树中不存在度大于2的节点。
2、即使树中某节点只有一颗子树，也要区分是左子树还是右子树。
定义：
1、在一棵树zho]]></description><category></category></item></channel></rss>