<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lanjiakang的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lanjiakang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lanjiakang]]></copyright><item><title><![CDATA[创建与销毁虚拟内存到物理内存或文件的映射]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/108433148</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/108433148</guid><author>lanjiakang</author><pubDate>Sun, 06 Sep 2020 16:32:52 +0800</pubDate><description><![CDATA[创建虚拟内存到物理内存或文件的映射
#include &lt;sys/mman.h&gt;
void* mmap (
void*  start,    // 映射区内存起始地址，NULL系统自动选定，成功返回之
size_t length, // 字节长度，自动按页(4K)对齐
int    prot,   // 映射权限
int    flags,  // 映射标志
int    fd,     // 文件描述符
off_t  offset  // 文件偏移量，自动按页(4K)对齐
);
成功返回映射区内]]></description><category></category></item><item><title><![CDATA[python中的类属性，类方法和静态方法]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/108306538</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/108306538</guid><author>lanjiakang</author><pubDate>Sun, 30 Aug 2020 15:08:17 +0800</pubDate><description><![CDATA[类属性  和 类方法
属于类对象    而不是这个类的某一个实例对象    该类所有的实例对象共享一份
直接可以通过类名.的形式进行访问
类方法第一个参数为cls    cls引用类对象
@classmethod
注意不要通过 对象来对类属性进行修改  那么将给对象绑定一个同名的实例属性
静态方法
@staticmethod
静态方法的参数 即没有类对象  也没有实例对象 作为参数
python建议不要直接对对象的属性进行直接赋值和访问
不能对赋值数据进行检验合法性
如果用set和get方法话 无疑对调用造]]></description><category></category></item><item><title><![CDATA[Python变量之列表与字典]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/108181490</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/108181490</guid><author>lanjiakang</author><pubDate>Sun, 23 Aug 2020 12:09:13 +0800</pubDate><description><![CDATA[列表  list
[]
列表:  一系列元素
在一个列表中可以存储任意类型的元素
可变数据类型: 可以修改列表中的元素
len()  可以求列表中元素的个数
 'append',         追加  整体追加   把参数作为一个单独的元素添加
 'clear',          清空
 'copy',           复制
 'count',          统计某个元素存在的个数
 'extend',         扩展   把另外一个列表中的元素逐一添加到列表中
 'index',    ]]></description><category></category></item><item><title><![CDATA[Python可变数据类型之集合]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/108181400</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/108181400</guid><author>lanjiakang</author><pubDate>Sun, 23 Aug 2020 12:04:40 +0800</pubDate><description><![CDATA[集合:
用{}表示   可变数据类型   不能使用下标访问[]
只能存储不可变数据类型，因为可变数据类型不能进行hash散列
即可以改变集合，但不能改变集合中的元素。
set  数据存储方式  hashtable   哈希(key)  查找效率最高的
set  中没有重复(值相等)的元素
集合中元素位置不是由插入顺序指定  而是由值本身决定
&amp;    :  交集
|    :  并集
^    :  并集-交集
-    :  差集

 'add',               往集合中增加元素  ]]></description><category></category></item><item><title><![CDATA[Python中字符串（str）类中的方法注解]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/108181255</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/108181255</guid><author>lanjiakang</author><pubDate>Sun, 23 Aug 2020 11:56:03 +0800</pubDate><description><![CDATA[字符串的成员函数:
‘capitalize’,        首字符大写 其余小写
‘casefold’,         返回一个小写字符串的版本
‘center’,           居中 然后默认用空格来左右填充到width宽度  width,fillchar
‘ljust’,				居左
‘rjust’,				居右
‘count’,            count(sub[,start[,end]]]) 从start处到end统计sub字符串出现的次数
‘encode’,           ]]></description><category></category></item><item><title><![CDATA[图的深度与广度遍历（C语言代码）]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/108037206</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/108037206</guid><author>lanjiakang</author><pubDate>Sun, 16 Aug 2020 15:44:14 +0800</pubDate><description><![CDATA[深度遍历类似于二叉树的先序遍历：遍历该节点后再遍历他的子节点；
广度遍历相当于二叉树的层次遍历：一层一层的遍历下去；
void DFS(Graph *pg,int v,bool visited[]){
	visited[v] = true;
	printf("%c ",pg-&gt;vertex[v].key);
	ENode *node = pg-&gt;vertex[v].enodes;
	while(node != NULL){
		int pos = get_position(pg,node-&gt]]></description><category></category></item><item><title><![CDATA[数据结构：队列（C语言实现）含详细注释^_^]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107890421</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107890421</guid><author>lanjiakang</author><pubDate>Sun, 09 Aug 2020 10:19:39 +0800</pubDate><description><![CDATA[数据结构：队列（C语言实现
queue.h
#ifndef _QUEUE_H__
#define _QUEUE_H__

#include &lt;stdio.h&gt;
#include &lt;stdbool.h&gt;
#include &lt;stdlib.h&gt;

typedef int T;
typedef struct Queue{
	T *base;
	size_t cap;      //容量
	size_t size;     //元素的个数
	size_t first;    //]]></description><category></category></item><item><title><![CDATA[数据结构：堆栈的实现（c语言）含判断以in[]顺序进栈，能否以out[]顺序出栈；]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107890262</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107890262</guid><author>lanjiakang</author><pubDate>Sun, 09 Aug 2020 10:09:13 +0800</pubDate><description><![CDATA[数据结构：堆栈的实现（c语言）
stack.h
#include &lt;stdlib.h&gt;
#include &lt;stdbool.h&gt;
#include &lt;stdio.h&gt;

typedef int T;
typedef struct Stack{
	T *base;          //内存
	size_t cap;       //容量
	size_t size;      //元素个数
}Stack;

int stack_init(Stack *s,size_t ca]]></description><category></category></item><item><title><![CDATA[综合性能最好的堆排序（c语言实现）]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107890160</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107890160</guid><author>lanjiakang</author><pubDate>Sun, 09 Aug 2020 09:59:41 +0800</pubDate><description><![CDATA[综合性能最好的堆排序（c语言实现）
思路：
把一个数组看成一棵完全二叉树，在把这棵二叉树调整为大栈堆，此时最大值在根节点，然后把根节点与最后一个叶子节点交换，在把这棵树调整为大栈堆；循环结束，则排序完成，为升序。
代码：
/调整index下标节点
void reheap(int arr[],size_t n,int index){
	int key = arr[index];
	int child = 2*index+1;
	while(child&lt;n){//存在子节点
		if(child+1&lt]]></description><category></category></item><item><title><![CDATA[1007 素数对猜想 (20分)（C语言）]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107735237</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107735237</guid><author>lanjiakang</author><pubDate>Sat, 01 Aug 2020 19:02:05 +0800</pubDate><description><![CDATA[这道题也很简单：写一个函数判断是否为素数，然后循环，只要这个数与它-2均为素数则计数+1即可；
1007 素数对猜想 (20分)
我们定义d
​n
​​ 为：d
​n
​​ =p
​n+1
​​ −p
​n
​​ ，其中p
​i
​​ 是第i个素数。显然有d
​1
​​ =1，且对于n&gt;1有d
​n
​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(&lt;10
​5
​​ )，请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。
输出]]></description><category></category></item><item><title><![CDATA[1056 组合数的和 (15分)（c语言）]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107735206</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107735206</guid><author>lanjiakang</author><pubDate>Sat, 01 Aug 2020 18:58:47 +0800</pubDate><description><![CDATA[这道题非常简单，就是每一个数*10+其他数的和；
1056 组合数的和 (15分)
给定 N 个非 0 的个位数字，用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8，则可以组合出：25、28、52、58、82、85，它们的和为330。
输入格式：
输入在一行中先给出 N（1 &lt; N &lt; 10），随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。
输出格式：
输出所有可能组合出来的2位数字的和。
输入样例：
3 2 8 ]]></description><category></category></item><item><title><![CDATA[1003 我要通过！c语言 (20分)最近在PTA系统刷了点题，就发上来了。]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107735100</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107735100</guid><author>lanjiakang</author><pubDate>Sat, 01 Aug 2020 18:55:20 +0800</pubDate><description><![CDATA[答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件，系统就输出“答案正确”，否则输出“答案错误”。
得到“答案正确”的条件是：
字符串中必须仅有 P、 A、 T这三种字符，不可以包含其它字符；
任意形如 xPATx 的字符串都可以获得“答案正确”，其中 x 或者是空字符串，或者是仅由字母 A 组成的字符串；
如果 aPbTc 是正确的，那么 aPbATca 也是正确的，其中 a、 b、 c 均或者是空字符串，或者是仅由字母 A 组成的字]]></description><category></category></item><item><title><![CDATA[选择排序，超级简单]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107589688</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107589688</guid><author>lanjiakang</author><pubDate>Sun, 26 Jul 2020 10:12:02 +0800</pubDate><description><![CDATA[选择排序
###思路
进行n-1次循环，每次循环中，从第i+1个位置起找出i后面的最小值与第i个位置进行交换。
###代码
#include&lt;stdio.h&gt; 
int main()
{
	int i,j;
	int arr[20]={0};
	int n=0;
	scanf("%d",&amp;n);
	for(i=0;i&lt;n;i++)
	{
		scanf("%d",&amp;arr[i]);
	}
	int min = 0;
	for(i=0;i&lt;n-1;i++)
	{
	 	]]></description><category></category></item><item><title><![CDATA[二分查找，也很容易]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107589471</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107589471</guid><author>lanjiakang</author><pubDate>Sun, 26 Jul 2020 09:48:21 +0800</pubDate><description><![CDATA[二分查找
思路
在一个有序的的数组中，每次将要查找的值与数组中间的值进行比较，以升序为例，如果要找的值大与中间值，则去右边查找，否则，反之；
代码
int search(int arr[],size_t n,int key){//arr[]为要查找的数组，n为数组长度，key为要查找的值；
	int left = 0;
	int right = n-1;
	while(left &lt;= right)
	{
		int mid = (left+right)/2;
		if(key&lt;arr[mid])]]></description><category></category></item><item><title><![CDATA[string.h中的函数后续]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107440878</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107440878</guid><author>lanjiakang</author><pubDate>Sun, 19 Jul 2020 09:55:28 +0800</pubDate><description><![CDATA[string.h中的函数后续
strcat（）与strncat
strcat（str1，str2）：将str2的内容复制到str1后面。
strncat（str1,str2,n）：j将str2前n个内容复制到str1后面。
注意：在strncat（）在复制完前n项后如果没有复制到‘\0’,则会自动补一个‘\0’.
mystrcat()
#include&lt;stdio.h&gt;
#include&lt;assert.h&gt;

char *mystrcat(char *dest,const char ]]></description><category></category></item><item><title><![CDATA[string.h中的一些函数]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107440682</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107440682</guid><author>lanjiakang</author><pubDate>Sun, 19 Jul 2020 09:33:45 +0800</pubDate><description><![CDATA[string.h中的一些函数
strlen（）
该函数返回的是字符串的长度，不包含‘\0’。
如果用sizeof的话会算上‘\0’,即会比strlen（）大1。
下面是我自己写的与strlen（）达到同样功能的函数。
我老师讲，以后企业的笔试大部分都会让你写一个函数原型，即与库中函数达到同样功能的函数；
#include&lt;stdio.h&gt;
#include&lt;assert.h&gt;

int mystrlen(char *str)
{
	assert(str != NULL);
	int ]]></description><category></category></item><item><title><![CDATA[写一个函数把一个字符串逆序]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107440417</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107440417</guid><author>lanjiakang</author><pubDate>Sun, 19 Jul 2020 09:14:17 +0800</pubDate><description><![CDATA[写一个函数把一个字符串逆序
这里涉及到了 字符串，字符串肯定涉及到指针，首先讲一下[ ]的作用[ ] 其实是*（）的作用，比如 a[i] 就等同于 (a+i),也等同于（i+a），所以也等同于i[a]。
即a[i] == * (a+i) == *(i+a) == i[a];
思路：
用strlen() 求的字符串长度，从i=0开始到  i&lt;len/2，第 i 个字符与第len-1-i个字符交换位置。
代码：
#include&lt;stdio.h&gt;
#include&lt;assert.h&gt]]></description><category></category></item><item><title><![CDATA[约瑟夫问题:有m个人 编号从1,2,...m进行编号   然后从编号为1的人开始报数1,2,..,n重复开始报数 		报到n的人出局，求留到最后那个人的编号是多少]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107295422</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107295422</guid><author>lanjiakang</author><pubDate>Sun, 12 Jul 2020 10:07:48 +0800</pubDate><description><![CDATA[约瑟夫问题
我在代码里写了很多注释，你肯定能看懂，就不赘述思路了。
代码：
#include&lt;stdio.h&gt;
int main()
{
	int m,n;
	int i = 0;
	scanf("%d %d",&amp;m,&amp;n);
	int arr[m];
	for(i=0;i&lt;m;i++)
	{
		arr[i] = 0;//0表示还活着
	}
	int outof = 0;//被杀掉的人
	int index = 0;//当前这个人的号码-1，当做数组下标，便与计算；
	i]]></description><category></category></item><item><title><![CDATA[任意一个大于2的偶数都可以分解为两个质数之和 	给定一个大于2的偶数n，求解这两个质数.]]></title><link>https://blog.youkuaiyun.com/lanjiakang/article/details/107294952</link><guid>https://blog.youkuaiyun.com/lanjiakang/article/details/107294952</guid><author>lanjiakang</author><pubDate>Sun, 12 Jul 2020 09:25:11 +0800</pubDate><description><![CDATA[任意一个大于2的偶数都可以分解为两个质数之和.给定一个大于2的偶数n，求解这两个质数.
思路
输入一个数n，判断其是否为大于二的偶数，一层循环从2开始，直到这个偶数的一半，每次判断n与n-i是否均为偶数，是则输出，否则继续循环，直到循环结束。
代码
#include&lt;stdio.h&gt;
int issushu(int x)//判断是否为素数
{
	int i;
	for(i=2;i&lt;=x/2;i++)
	{
		if(x%i==0)
		{
			return 0;	
		}
	}
	ret]]></description><category></category></item></channel></rss>