<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[apt1203JN的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/apt1203JN</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; apt1203JN]]></copyright><item><title><![CDATA[【剑指offer】面试题之二叉树系列（一）]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/81672676</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/81672676</guid><author>apt1203JN</author><pubDate>Tue, 14 Aug 2018 19:05:51 +0800</pubDate><description><![CDATA[1、把二叉树打印成多行


  题目描述： 从上到下按层打印二叉树，同一层结点从左至右输出。每一层输出一行
  
  思路： 
          层序遍历 
          问题：怎样去确定它的每一层有多少结点




按层次输出二叉树
访问根节点，并将根节点入队。
当队列不空的时候，重复以下操作。
1、弹出一个元素。作为当前的根节点。
2、如果根节点有左孩子，访问左孩子，并将左孩子入队。
...]]></description><category></category></item><item><title><![CDATA[str系列库函数的模拟实现]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/81672502</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/81672502</guid><author>apt1203JN</author><pubDate>Tue, 14 Aug 2018 18:51:54 +0800</pubDate><description><![CDATA[1、模拟实现strlen ：字符串求长度 
思路：字符串都有结束标志\0，只要遍历这个字符串，知道遇到\0结束，就能轻松的获得字符串的长度了 
（1）不创建计数器（递归）

int my_strlen1(const char* str)
{
    if ('\0' == *str)
        return 0;
    else
        return 1 + my_strlen1(...]]></description><category></category></item><item><title><![CDATA[rotate_list（旋转链表）]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/81542428</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/81542428</guid><author>apt1203JN</author><pubDate>Thu, 09 Aug 2018 19:04:05 +0800</pubDate><description><![CDATA[题目描述


  Given a list, rotate the list to the right by k places, where k is non-negative. 
   给定一个链表，将链表向右旋转k个位置，其中k是非负的。 
  For example: Given1-&amp;gt;2-&amp;gt;3-&amp;gt;4-&amp;gt;5-&amp;gt;NULLand k =2, 
  return4-&amp;g...]]></description><category></category></item><item><title><![CDATA[partition-list]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/81477416</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/81477416</guid><author>apt1203JN</author><pubDate>Tue, 07 Aug 2018 10:56:34 +0800</pubDate><description><![CDATA[题目描述：

Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x. 
You should preserve the original relative order of the nodes in ea...]]></description><category></category></item><item><title><![CDATA[链表中倒数第K个结点]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/81461749</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/81461749</guid><author>apt1203JN</author><pubDate>Mon, 06 Aug 2018 21:30:43 +0800</pubDate><description><![CDATA[
  题目描述  
  输入一个链表，输出该链表中倒数第k个结点。


思路： 
        定义两个指针：一个pPre,一个pCur，让pPre先走k-1步（这里用for循环来实现pCur不动。当从第k步开始，让两个指针再同时出发（这样两个指针之间的距离始终就是k-1），当pPre走到尾指针时，pCur                                 刚好走到倒数第k个结点 ...]]></description><category></category></item><item><title><![CDATA[排序之交换排序（快排）]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/81392366</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/81392366</guid><author>apt1203JN</author><pubDate>Fri, 03 Aug 2018 18:06:40 +0800</pubDate><description><![CDATA[1、冒泡排序：稳定 
        冒泡排序（Bubble Sort），是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列，一次比较两个相邻的元素，如果他们的顺序（如从大到小、首字母从A到Z）错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换，也就是说该元素已经排序完成。


  基本思想：    （1）比较相邻的元素。如果第一个比第二个大，就交换他们两个...]]></description><category></category></item><item><title><![CDATA[两个链表的公共结点]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/81390519</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/81390519</guid><author>apt1203JN</author><pubDate>Fri, 03 Aug 2018 16:45:19 +0800</pubDate><description><![CDATA[题目描述： 
输入两个链表，找出它们的第一个公共结点 
 
思路： 
        如上图所示，两个链表从第一个公共结点开始，后面的所有结点都是重合的，并且不可能再出现分叉


  思路一：在第一个链表上顺序遍历每个结点，每遍历一个结点，就在第二个链表上顺序遍历每个结点，直到找到第一个公共结点。 
               时间复杂度为O(mn)  
               思路二：首...]]></description><category></category></item><item><title><![CDATA[排序之选择排序]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/81166045</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/81166045</guid><author>apt1203JN</author><pubDate>Mon, 23 Jul 2018 13:11:52 +0800</pubDate><description><![CDATA[二、选择排序 
1、选择排序（区间在不断地变小 ） 
基本思想： 
       选择排序（Selection sort）是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小（或最大）的一个元素，存放在序列的起始位置，直到全部待排序的数据元素排完。 （首先，选出最小的数放在第一位，然后选择第二小的数，放在第二位；以此类推，直到所有的数从小到大排列.那么，对于大小为N的数组需要...]]></description><category></category></item><item><title><![CDATA[排序之插入排序]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/81162040</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/81162040</guid><author>apt1203JN</author><pubDate>Mon, 23 Jul 2018 09:18:02 +0800</pubDate><description><![CDATA[一、什么是排序 
1、概念 
    排序就是将一组杂乱无章的数据按照一定的规律（升序或者降序）组织起来 
2、分类 


3、各排序之间的时间复杂度&amp;amp;空间复杂度&amp;amp;稳定性 


二、插入排序 
1、直接插入排序


  基本思想： 
  当插入第i(i&amp;gt;=1)个元素时，前面的array[0],array[1],…,array[i-1]已经排好 序，此时用array[i]的排序...]]></description><category></category></item><item><title><![CDATA[shell基础之工具（一）]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/81061611</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/81061611</guid><author>apt1203JN</author><pubDate>Mon, 16 Jul 2018 10:58:39 +0800</pubDate><description><![CDATA[一、sort 
    sort将文件的每一行作为一个单位，相互比较，比较原则是从首字符向后，依次按照ASCII码值进行比较，最后将它们按升序输出（默认情况下都是升序）

sort的常见几个选项： 
（1）sort    -r：排序方式改为降序 
（2）sort    -u：在输出行中去除掉重复行 
（3）sort    -n：以数值来排序 
（4）sort    -t：设置间隔符 
（5）sor...]]></description><category></category></item><item><title><![CDATA[正则表达式]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/80952127</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/80952127</guid><author>apt1203JN</author><pubDate>Sat, 07 Jul 2018 15:56:26 +0800</pubDate><description><![CDATA[
  相信大家都知道见过正则表达式，但什么是正则表达式嘞？ 
          正则表达式就是用于描述一组字符串特征的模式，用来匹配特定的字符串。通过 特殊字符＋普通字符来进行模式描述，从而达到文本匹配目的工具。 
          正则表达式目前被集成到了各种文本编辑器/文本处理工具当


正则表达式的分类：


基本的正则表达式（Basic Regular Expression 又叫 Ba...]]></description><category></category></item><item><title><![CDATA[fd与FILE结构体]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/80617036</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/80617036</guid><author>apt1203JN</author><pubDate>Fri, 08 Jun 2018 00:03:04 +0800</pubDate><description><![CDATA[前言： 
fopen，fclose，fwrite，fread属于C库当中的函数，为库函数调用。而open，close，write，read这几个函数属于系统提供的借口，称之为系统调用。库函数和系统调用是上下级关系，在库函数中封装了系统调用的函数。（库函数为啥都有的大哥，系统调用就是有一部分的小弟）

一、文件描述符fd

1、简介 
        文件描述符就是以0开始的一个小整数（文件描述符无...]]></description><category></category></item><item><title><![CDATA[【剑指offer】------将字符串中的空格替换]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/80464130</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/80464130</guid><author>apt1203JN</author><pubDate>Sat, 26 May 2018 21:21:58 +0800</pubDate><description><![CDATA[题目描述：


将一行字符串中的空格替换成为%20  
  eg：hello world 准换成为  hello%20world


题目分析： 
方案一：


可以允许开辟新的空间 
遍历旧字符串复制，遇到空格就在新字符串上填入“%20” ！！！


方案二：


不允许开辟新的空间，只能在原来的字符串上操作（原来的空间足够长） 
1、从前往后 
从前往后替换时，很容易覆盖掉后面的字符


2、...]]></description><category></category></item><item><title><![CDATA[表的增删改查（CRUD）]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/80464014</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/80464014</guid><author>apt1203JN</author><pubDate>Sat, 26 May 2018 18:29:03 +0800</pubDate><description><![CDATA[1、增加 
语法：



insert into table_name[(column[,column...])]  values (value [,value...]);

增加进阶：


  更新： 主键插入如果重复：（如果重复做更新，如果不重复做插入）  
  insert into t7 values(1,”易烊千玺”) on 
  duplicate key update name = ...]]></description><category></category></item><item><title><![CDATA[多线程------线程的等待与分离]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/80328809</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/80328809</guid><author>apt1203JN</author><pubDate>Tue, 15 May 2018 20:26:35 +0800</pubDate><description><![CDATA[一、线程等待

// 函数原型
#include &amp;amp;lt;pthread.h&amp;amp;gt;
int pthread_join(pthread_t thread, void **retval);

// 参数
           thread：线程ID
           retval：它指向一个指针，后者指向线程的返回值

//函数功能：等待线程结束

//返回值：成功返回0，失败返回错误码


 ...]]></description><category></category></item><item><title><![CDATA[多线程-------线程的同步与互斥]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/80320276</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/80320276</guid><author>apt1203JN</author><pubDate>Tue, 15 May 2018 11:20:43 +0800</pubDate><description><![CDATA[一、什么是互斥量（mutex） 
先来看一段代码：操作共享变量会有问题的售票系统

Makefile 
 
mypthread.c

#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;unistd.h&amp;gt;
#include &amp;lt;pthread.h&amp;gt;

in...]]></description><category></category></item><item><title><![CDATA[数据库中表的常见七大约束]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/80314605</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/80314605</guid><author>apt1203JN</author><pubDate>Mon, 14 May 2018 20:15:55 +0800</pubDate><description><![CDATA[
  真正约束字段的是数据类型，但是数据类型约束很单一，需要有一些额外的约束，更好的保证数据的合法性，从业 
  务逻辑角度保证数据的正确性。比如有一个字段是email，要求是唯一的。


1、空属性not null：not null 此列属性不允许为空，必须做数据插入



create table t1(
    per_name varchar(20),
    per_age int no...]]></description><category></category></item><item><title><![CDATA[数据库中表的基本操作【面试常考点】]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/80217967</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/80217967</guid><author>apt1203JN</author><pubDate>Sun, 06 May 2018 20:27:18 +0800</pubDate><description><![CDATA[1、创建表

// 语法
CREATE TABLE table_name (  
                field1 datatype,  
                field2 datatype,  
                field3 datatype 
) character set 字符集 collate 校验规则 engine 存储引擎;

（1）ﬁeld 表...]]></description><category></category></item><item><title><![CDATA[数据库的备份和恢复]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/80210542</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/80210542</guid><author>apt1203JN</author><pubDate>Sat, 05 May 2018 22:56:25 +0800</pubDate><description><![CDATA[一、创建数据库 
1、数据库的创建



语法：create database [IF NOT EXISTS] 数据库名；
     CREATE DATABASE [IF NOT EXISTS] 数据库名 [create_speciﬁcation [, create_speciﬁcation] ...]

示例：创建一个名为mysweet的数据库 
 
**



字符集和校验规则

**

数...]]></description><category></category></item><item><title><![CDATA[多线程------线程的基本概念&创建&终止]]></title><link>https://blog.youkuaiyun.com/apt1203JN/article/details/80203327</link><guid>https://blog.youkuaiyun.com/apt1203JN/article/details/80203327</guid><author>apt1203JN</author><pubDate>Sat, 05 May 2018 10:32:26 +0800</pubDate><description><![CDATA[一、什么是线程 
1、概念 
      在Linux下进程是承担系统分配资源的基本单位。Linux下的进程称之为轻量级进程。 
      在一个程序里的一个执行路线就叫做线程。线程就是“一个进程内部的控制序列”（线程是在进程内部运行的）。线程是承担调度的基本单位，一个进程可以有多个线程，它的执行力度比进程更细




  注意点： 
         在Linux中，线程和进程共用一种数据结构...]]></description><category></category></item></channel></rss>