<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_48857897的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_48857897</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_48857897]]></copyright><item><title><![CDATA[二叉搜索树的实现]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/132382623</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/132382623</guid><author>m0_48857897</author><pubDate>Sat, 19 Aug 2023 18:07:19 +0800</pubDate><description><![CDATA[二叉搜索树是左边根节点小，右边比根节点大。]]></description><category></category></item><item><title><![CDATA[在Linux下打包动静态库]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/132307966</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/132307966</guid><author>m0_48857897</author><pubDate>Wed, 16 Aug 2023 08:44:44 +0800</pubDate><description><![CDATA[动静态库]]></description><category></category></item><item><title><![CDATA[双向链表的实现]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/128321964</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/128321964</guid><author>m0_48857897</author><pubDate>Wed, 14 Dec 2022 20:58:25 +0800</pubDate><description><![CDATA[创建的是一个带头的双向链表，结构如下。]]></description><category></category></item><item><title><![CDATA[链表的快慢指针思想的解决]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/128225046</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/128225046</guid><author>m0_48857897</author><pubDate>Wed, 07 Dec 2022 18:57:03 +0800</pubDate><description><![CDATA[看接下来的一道题目
1、给定一个头结点为 head 的非空单链表，返回链表的中间结点。
如果有两个中间结点，则返回第二个中间结点。
例子：[1,2,3,4,5]        返回中间节点3
[1,2,3,4,5,6]       返回中间节点4
我们该如何做呢，首先这里用到了快慢指针，就是让两个指针同时指向头节点，一个指针一个一个的走，一个指针是两个两个的走，看下面的代码
下面这个例题时快慢指针的变形,类似于快慢指针2、输入一个链表，输出该链表中倒数第k个结点。
输入：
1,{1,2,3,4,5}
返回值]]></description><category></category></item><item><title><![CDATA[用C语言实现单链表]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/127809447</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/127809447</guid><author>m0_48857897</author><pubDate>Fri, 11 Nov 2022 20:30:19 +0800</pubDate><description><![CDATA[在整个单链表的实现中，把数据的定义放到SList.h文件中，在实现每个函数写在SList.c中，同时创建一个主函数用于测试。单链表由数据域和指针域构成，数据域存储的这个节点的数据，指针域存储的是下一个节点的地址。在SList.c中写如下代码。]]></description><category></category></item><item><title><![CDATA[寻找单身狗和进阶版的单身狗]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/127350171</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/127350171</guid><author>m0_48857897</author><pubDate>Sun, 16 Oct 2022 17:33:53 +0800</pubDate><description><![CDATA[1.找单身狗 ，一个数组中只有两个数字是出现一次，其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。2、一个数组中只有两个数字是出现一次，其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。]]></description><category></category></item><item><title><![CDATA[动态内存管理]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/127030447</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/127030447</guid><author>m0_48857897</author><pubDate>Sat, 24 Sep 2022 22:02:21 +0800</pubDate><description><![CDATA[realloc - 调整内存空间的大小的/如果第一个参数是NULL，功能类似malloc。动态内存的开辟是在堆区进行内存空间的开辟，开辟到的是一块连续的空间。free - 释放动态开辟的内存空间的。malloc  - 不初始化。calloc - 初始化为0。realloc的使用。]]></description><category></category></item><item><title><![CDATA[库函数memcpy的使用]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126861215</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126861215</guid><author>m0_48857897</author><pubDate>Wed, 14 Sep 2022 22:14:03 +0800</pubDate><description><![CDATA[根据这个运行结果发现，好像根本没拷贝过去，变成了不是我期望的值，这是为什么呢，仔细观察发现，向这种情况不能在从前向后拷贝了，应该是从后往前拷贝，但srcdest时可以从前往后拷贝，代码如下所示。这里就简单实现了，那么考虑一下，把1，2，3，4，5拷贝到3，4，5，6，7上面呢，如果还用刚刚实现的模拟函数会出现什么问题呢。把源头的指针的值拷贝到目标指针的值中，拷贝是按字节拷贝的，使用方法如下。库函数memcpy是内存函数的拷贝，memcpy的函数参数如下。]]></description><category></category></item><item><title><![CDATA[库函数strstr的实现]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126819420</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126819420</guid><author>m0_48857897</author><pubDate>Mon, 12 Sep 2022 17:09:58 +0800</pubDate><description><![CDATA[strstr是字符串的查找，就是找一个字符串中是否含有另一个字符串的函数，如果存在子字符串，返回的是第一个字符串的起始位置，看一下模拟实现。]]></description><category></category></item><item><title><![CDATA[库函数strcmp的模拟实现]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126818399</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126818399</guid><author>m0_48857897</author><pubDate>Mon, 12 Sep 2022 16:14:49 +0800</pubDate><description><![CDATA[前面字符串大于后面的字符串返回大于0的数字，相等返回0，前面的字符串小于后面的，返回小于0的数字。strcmp是字符串之间的比较，看官方说明。strcmp的模拟实现。]]></description><category></category></item><item><title><![CDATA[库函数strcat的实现]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126800449</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126800449</guid><author>m0_48857897</author><pubDate>Sat, 10 Sep 2022 22:34:18 +0800</pubDate><description><![CDATA[strcat是字符串追加的函数，字符串的追加是发现目标空间的‘\0’结束。模拟实现strcat函数。]]></description><category></category></item><item><title><![CDATA[库函数strcpy函数的实现]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126800061</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126800061</guid><author>m0_48857897</author><pubDate>Sat, 10 Sep 2022 22:08:35 +0800</pubDate><description><![CDATA[此时这里的arr1会变成是hello world\0x,但是打印出来的arr1是hello world。1、源字符串的拷贝是是以‘\0’结尾的，同时会将字符串中的’\0’拷贝过去。3、源字符串的空间必须足够大，如果字符串常量不够大，拷贝过去是会出错的。strcpy指的是字符串的拷贝，就是把源字符串拷贝到目标空间里面。这里此时是会出错的，因为p指向的常量字符串，所有不能这样写。2、目标空间的字符串必须是可变的，不能是常量字符串。4、模拟实现strcpy。]]></description><category></category></item><item><title><![CDATA[库函数strlen的模拟实现]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126799489</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126799489</guid><author>m0_48857897</author><pubDate>Sat, 10 Sep 2022 21:04:47 +0800</pubDate><description><![CDATA[看见这一段代码，这会输出哪个符号呢？正确的答案是“>”，因为strlen这个库函数返回的是无符号的整形，两个无符号数相减肯定得到的是无符号的整数，得到的数永远是大于0的数。1、对于strlen这个库函数来说，主要就是求字符串的长度的，无论何时，只要遇到‘\0’,求得的长度都会戛然而止，可以看一下例子。上面这个代码块遇到‘\0’就会停止，无论是str1还是str2求得的长度都为6，这两个的结果是一样的。2、在查阅得到的strlen的库函数中，库函数的范围类型为size_t。完整的模拟实现就到这里啦。]]></description><category></category></item><item><title><![CDATA[用冒泡排序的思想，模拟实现qsort函数]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126512457</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126512457</guid><author>m0_48857897</author><pubDate>Sun, 28 Aug 2022 19:47:57 +0800</pubDate><description><![CDATA[由于冒泡排序使用的话要规定类型，所以使用冒泡排序的思想，模拟实现qsort函数，但是我们要知道，qsort的底层逻辑是用快速排序实现的。冒泡排序有点局限性，在这里只能排序整形的数组，那如果我想使用结构体排序呢，或者我使用float类型进行排序呢，这里的冒泡排序就要重写。首先，要理解什么是冒泡排序，冒泡排序首先就是把无序的一组数，转化成为有序的，像冒泡一样，把排序好的数，一点点的冒出来，比如如下代码。为了更加的方便，使用库函数qsort进行排序。...]]></description><category></category></item><item><title><![CDATA[关于signed和unsigned进行整形提升所出现的问题]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126447853</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126447853</guid><author>m0_48857897</author><pubDate>Sun, 21 Aug 2022 10:14:53 +0800</pubDate><description><![CDATA[内存中存储这些变量都是以补码的方式进行存储，所以a、b、c在内存中的存储都是11111111这样的形势进行存储。为什么会出现这种结果呢，现在我来分析一下。]]></description><category></category></item><item><title><![CDATA[设计一段代码，判断在内存中是小端存储还是大端存储]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126447762</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126447762</guid><author>m0_48857897</author><pubDate>Sun, 21 Aug 2022 10:01:11 +0800</pubDate><description><![CDATA[则a在存储中的存储是 00 00 00 01，要不然a是小端存储，要不然a是大端存储，则a在内存中存储如下图所示。如图所示，如果知道a中的第一个字节是0还是1则就知道了a在内存中是大端存储还是小端存储。大端存储：数据中的低位保存在内存中的高地址中，数据中的高位保存在内存中的低地址中。小端存储：数据中的高位保存在内存中的高地址中，数据中的低位保存在内存中的低地址中。在visual studio中，输出结果是小端。假设int a=1;]]></description><category></category></item><item><title><![CDATA[原码，反码，补码的关系和大小端字节序存储的关系]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126444503</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126444503</guid><author>m0_48857897</author><pubDate>Sat, 20 Aug 2022 21:42:33 +0800</pubDate><description><![CDATA[下面讨论大小端字节序的存储问题，是跟数据在内存中的存储有关系，如下图所示。首先要知道第一位是符号位，0代表是正数，1代码是负数。在看如下代码之前，要知道原码，反码，补码之间的关系。负数的反码是符号位不变，其他位按位取反。给出一段代码，给出原码，反码和补码。关于负数的原码反码补码中的问题。正数的原码，反码，补码相同。负数的补码是反码+1。]]></description><category></category></item><item><title><![CDATA[用C语言倒置字符串]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126429619</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126429619</guid><author>m0_48857897</author><pubDate>Fri, 19 Aug 2022 21:03:08 +0800</pubDate><description><![CDATA[首先对I、like、beijing. 中的每个单词逆序，由此变成I、ekil、.gnijie变成这样之后，在对整个字符串进行逆序就行了。首先，逆置这个字符串，可以考虑单独的把每个单词都逆序一下，在对整个字符串进行逆序。要逆置这个字符串，有很多种方法，在此说一次比较巧妙的方法。考虑本题中的I like beijing.]]></description><category></category></item><item><title><![CDATA[字符串数组长度的几种求法]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126193723</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126193723</guid><author>m0_48857897</author><pubDate>Sat, 06 Aug 2022 13:42:41 +0800</pubDate><description><![CDATA[第一种 根据库函数求出字符串的长度，采用这种方法要引入头文件string.h。第二种 采用计数器的方法求得字符串的方法。第四种 采用指针减指针的方法。第三种 采用递归的方法。]]></description><category></category></item><item><title><![CDATA[采用C语言求出最大公约数和最小公倍数]]></title><link>https://blog.youkuaiyun.com/m0_48857897/article/details/126170450</link><guid>https://blog.youkuaiyun.com/m0_48857897/article/details/126170450</guid><author>m0_48857897</author><pubDate>Fri, 05 Aug 2022 08:47:50 +0800</pubDate><description><![CDATA[求最大公约数和最小公倍数的时候，通常采用遍历的方式，这种方式虽然能求，但是如果要求的两个数比较大时，就会出现遍历时长过长的问题。于是想采用一种简洁的方式求出。比如：输入15和9这两个值，用辗转相除法的思想是这样的。此时3就是15和9的最大公约数。...]]></description><category></category></item></channel></rss>