<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yexixi06的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yexixi06</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yexixi06]]></copyright><item><title><![CDATA[[FTP]]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/125074716</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/125074716</guid><author>yexixi06</author><pubDate>Tue, 31 May 2022 22:30:34 +0800</pubDate><description><![CDATA[dnf search vsftpddnf install vsftpd -yfirewall-cmd --zone=public --add-service=ftp --permanentfirewall-cmd --reloadvim /etc/vsftpd/vsftpd.conf:set nu:qmv /etc/vsftpd/vsftpd.conf /etc/vsftpd//vsftpd.conf.bkegrep  -v '#|:|^$' /etc/vsftpd/vsftpd.conf.bk >/etc]]></description><category></category></item><item><title><![CDATA[客户端通过网页浏览器访问web服务器网站]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/125027157</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/125027157</guid><author>yexixi06</author><pubDate>Sun, 29 May 2022 09:33:05 +0800</pubDate><description><![CDATA[dnf list httpd

dnf -y install httpd

systemctl status httpd

systemctl start httpd

systemctl status httpd

echo “welcome”&gt;/var/www/html/index.html

systemctl restart httpd

vim /etc/httpd/conf/httpd.conf

:set nu

//160

Order allow,deny

Allow from a]]></description><category></category></item><item><title><![CDATA[【队列与栈的实现】]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/124965413</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/124965413</guid><author>yexixi06</author><pubDate>Wed, 25 May 2022 14:24:38 +0800</pubDate><description><![CDATA[队列功能：


#pragma once

#include&lt;stdlib.h&gt;
#include&lt;stdio.h&gt;
#include&lt;assert.h&gt;
#include&lt;string.h&gt;

typedef int QDataType;

//链式结构：表示队列
typedef struct QListNode
{
	struct QListNode* Next;
	QDataType data;
}QNode;
// 队列的结构
typedef stru]]></description><category></category></item><item><title><![CDATA[双向循环 链表]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/124908960</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/124908960</guid><author>yexixi06</author><pubDate>Sun, 22 May 2022 12:17:05 +0800</pubDate><description><![CDATA[首先，我们明确需要实现的功能：


#pragma once

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

typedef int LTDataType;

typedef struct ListNode
{
	LTDataType data;
	struct ListNode* next;
	stru]]></description><category></category></item><item><title><![CDATA[作业 KMP]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/124826859</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/124826859</guid><author>yexixi06</author><pubDate>Tue, 17 May 2022 18:20:44 +0800</pubDate><description><![CDATA[目录

第一章 问题分析 3

引言： 3

选择原因： 3

总体要求： 3

第二章 算法设计与实现 4

暴力算法： 4

KMP算法： 6

（一） .KMP算法定义 6

（二） .最大公共元素长度 9

（三） .Next数组 10

（四） .Next数组的求解 12

（五） .Next数组的求解的优化 14

（六） 扩充BM算法 16

（七） 扩充SUNDAY算法 19

第三章 程序测试 24

测试分析： 24

时间复杂度分析： 26

第四章 总结与展望 27

参考文献 28]]></description><category></category></item><item><title><![CDATA[wordpress]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/124792307</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/124792307</guid><author>yexixi06</author><pubDate>Mon, 16 May 2022 07:49:51 +0800</pubDate><description><![CDATA[使用LAMP搭建wordpress网站

dnf -y install httpd

systemctl status httpd

systemctl start httpd

systemctl status httpd

systemctl enable httpde

echo “welcome”&gt;/var/www/html/index.html

getenforce

setenforce 0

getenforce

dnf -y install mariadb-server

syst]]></description><category></category></item><item><title><![CDATA[Web端配置]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/124789440</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/124789440</guid><author>yexixi06</author><pubDate>Sun, 15 May 2022 22:15:37 +0800</pubDate><description><![CDATA[目录



Httpd安装与基础配置

基于多ip的多虚拟主机配置

基于主机域名的多虚拟主机配置

基于端口号的多虚拟主机的配置



Httpd安装与基础配置

dnf list httpd

dnf -y install httpd

127.0.0.1

Systemctl status httpd

Systemctl start httpd //临时打开，重启之后就不行了

Systemctl status httpd

Systemctl enable httpd //开机自启

Tree..]]></description><category></category></item><item><title><![CDATA[Linux换源方法]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/124787305</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/124787305</guid><author>yexixi06</author><pubDate>Sun, 15 May 2022 20:18:30 +0800</pubDate><description><![CDATA[删除旧的配置文件
rm -rf /etc/yum.repos.d/*.repo
下载repo文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-reg.repo
生成缓存
yum makecache

]]></description><category></category></item><item><title><![CDATA[KMP算法[个人理解与笔记]]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/124765192</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/124765192</guid><author>yexixi06</author><pubDate>Sat, 14 May 2022 15:16:41 +0800</pubDate><description><![CDATA[目录

一.暴力匹配

二.KMP算法

图文与代码：

最大公共元素与next数组：





一.暴力匹配

当我们需要在长串S中，找到我们需要的模式串L。使用暴力匹配的话，需要将整个串不断的回溯，时间复杂度是（m*n）


#include&lt;stdio.h&gt;

int violentmatch(char* ske, char* str) {
    int len1 = strlen(ske);
    int len2 = strlen(str);

    int i = 0, j =]]></description><category></category></item><item><title><![CDATA[顺序表 c语言实现]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/124342768</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/124342768</guid><author>yexixi06</author><pubDate>Fri, 22 Apr 2022 12:55:46 +0800</pubDate><description><![CDATA[目录



顺序表：

函数声明：

初始化：

函数空间检查与扩容：

头插，头删，尾插，尾删：

特定位置的删除与插入：



顺序表：

概念部分：顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构，一般情况下采用数组存储，在数组上完成数据的增删查改。
	顺序表一般分为：静态顺序表，动态顺序表


顺序表C语言实现：

首先你需要明确，你需要的基础功能应该有那些：

头插，头删
	尾插，尾删
	扩容
	初始化
	特定位置删除与插入
接下来开始实现：

在数据结构阶段应该将函数声明与实现分开]]></description><category></category></item><item><title><![CDATA[＜文件操作＞]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/124057364</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/124057364</guid><author>yexixi06</author><pubDate>Sat, 09 Apr 2022 11:08:54 +0800</pubDate><description><![CDATA[文件指针：

概念：缓冲文件系统中，关键的概念是“文件类型指针”，简称“文件指针”。 每个被使用的文件都在内存中开辟了一个相应的文件信息区，用来存放文件的相关信息（如文件的名 字，文件状态及文件当前的位置等）。这些信息是保存在一个结构体变量中的。该结构体类型是有系统 声明的，取名FILE.


FILE* pf;//文件指针变量

定义pf是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区（是一个结构体变 量）。通过该文件信息区中的信息就能够访问该文件。也就是说，通过文件指针变量能够找]]></description><category></category></item><item><title><![CDATA[malloc笔试题解析]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/123904490</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/123904490</guid><author>yexixi06</author><pubDate>Fri, 01 Apr 2022 18:17:59 +0800</pubDate><description><![CDATA[void GetMemory(char *p)
{
 p = (char *)malloc(100);
}
void Test(void)
{
 char *str = NULL;
 GetMemory(str);
 strcpy(str, "hello world");
 printf(str);
}


test函数调用时，内部创建了指针变量str，它是一个局部变量。当把 实参str传给形参p时，形参p是一份临时拷贝，它有自己的独立空间。

malloc申请的空间，放进p时，并不会影响到str。

当.]]></description><category></category></item><item><title><![CDATA[通讯录【C语言实现】个人理解]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/123861976</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/123861976</guid><author>yexixi06</author><pubDate>Thu, 31 Mar 2022 08:16:50 +0800</pubDate><description><![CDATA[在实现代码之前，需要思考通讯录需要实现那些功能。

例如，增加联系人，删除联系人，查找联系人，打印联系人信息，对录入的联系人信息进行排序和退出。



首先是实现通讯录菜单：



实现菜单后，需要思考如何调用菜单并实现菜单的功能：



在调用菜单后，需要实现菜单的各种功能，我们将各种函数的说明与实现分装开来。



contact.h用来说明各种函数与结构体。
	test.C用来放主函数和菜单等。
	contact.C用来实现函数。
提前申明：









首先，联系人信息应该包括了姓名，性别..]]></description><category></category></item><item><title><![CDATA[结构体与联合体与枚举]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/123743216</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/123743216</guid><author>yexixi06</author><pubDate>Tue, 29 Mar 2022 14:42:01 +0800</pubDate><description><![CDATA[结构体内存对齐：

先看一组代码：



看上去似乎是char类型＋int类型＋char类型的字节大小，但是实际运行却是完全不一样。





原因：

结构体有一种内存对齐规则。

第一个成员在与结构体变量偏移量为0的地址处
	其他成员变量要对齐到对齐数的整数倍的地址处
	对齐数指的是编译器默认的一个对齐数与该成员大小的较小值
	结构体总大小为最大对齐数的整数倍
	如果嵌套了结构体，嵌套的结构体对齐到自己的最大对齐数的整数倍处，结构体的整体大小就是所有zuidaduiqishu

...]]></description><category></category></item><item><title><![CDATA[字符串与内存函数（2）]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/123689376</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/123689376</guid><author>yexixi06</author><pubDate>Wed, 23 Mar 2022 16:28:44 +0800</pubDate><description><![CDATA[strstr函数：

strstr(str1,str2) 用于判断字符串str2是否是str1的子串。如果是，则该函数返回str2在str1中首次出现的地址；否则，返回NULL。



strtok函数：

sep参数是个字符串，定义了用作分隔符的字符集合 第一个参数指定一个字符串，它包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记。

strtok函数找到str中的下一个标记，并将其用 \0 结尾，返回一个指向这个标记的指针。（注： strtok函数会改变被操作的字符串，所以在使用strto]]></description><category></category></item><item><title><![CDATA[malloc与memset的使用方式【个人理解】]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/123189507</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/123189507</guid><author>yexixi06</author><pubDate>Mon, 28 Feb 2022 19:20:28 +0800</pubDate><description><![CDATA[malloc函数：

引用头文件    #include&lt;malloc.h&gt;

返回值        如果分配成功返回分配的指针，否则返回null。



malloc函数的使用：

因为malloc函数在使用时，是不会进行类型检查的，仅仅负责开辟空间，所以需要使用的时候强制类型转换。

使用格式：

例如：int*arr=(int*)malloc((n+1)*sizeof(int));
	指针自身 = (指针类型*）malloc（sizeof（指针类型）*数...]]></description><category></category></item><item><title><![CDATA[素数求解【个人理解】]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/123151039</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/123151039</guid><author>yexixi06</author><pubDate>Sat, 26 Feb 2022 15:53:51 +0800</pubDate><description><![CDATA[第一种：



将全部的数拿出来计算，效率较低。





第二种：



因为素数除了2都是奇数，所以只计算奇数的数。





第三种：





sqrt是根号，使用时候需要使用math,h头文件

进行筛选时，首先除了2都是奇数，而且对j只需要计算到iqrt（j）即可了。

条件筛选时，记得排除1.


...]]></description><category></category></item><item><title><![CDATA[【数据存储】个人笔记]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/123118680</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/123118680</guid><author>yexixi06</author><pubDate>Thu, 24 Feb 2022 21:46:22 +0800</pubDate><description><![CDATA[常见的编程错误：

编译型错误，与语法错误一样。
	链接型错误，引用函数的时候，函数不存在（或者函数名书写错误）
	运行时错误（需要通过调试排查错误）
C 数据存储：

整形类型：

short—2byte—16bit
	如果是有符号的，最高位表示符号位，0表示正数，1表示负数。
	那么意味着unsigned short与short和sign short的大小就有区别了。
	ps.char在存储时是存储ASCII码的，所以算作整形。
	ps.%u用来打印unsigned型
构造类型：

数组类型，结构体类型]]></description><category></category></item><item><title><![CDATA[strlen() sizeof()size()length()个人理解]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/122858067</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/122858067</guid><author>yexixi06</author><pubDate>Thu, 10 Feb 2022 12:13:34 +0800</pubDate><description><![CDATA[strlen()用来计算指定的字符串s 的长度，不包括结束字符"\0"。

sizeof()计算对象所占内存空间的大小，包括“\0”。

size()计算字符串长度之外，还可以获取vector类型的长度。

length()计算字符串长度
...]]></description><category></category></item><item><title><![CDATA[EOF 个人理解]]></title><link>https://blog.youkuaiyun.com/yexixi06/article/details/122855637</link><guid>https://blog.youkuaiyun.com/yexixi06/article/details/122855637</guid><author>yexixi06</author><pubDate>Thu, 10 Feb 2022 10:38:33 +0800</pubDate><description><![CDATA[EOF= END OF FILE(英文意思：文件结尾)

EOF也可以作为while循环中的文件结束标志符，但是EOF只能是文本文件的结束标志符。

在文本文件中，数据都是以字符的ASCII代码值的形式存放。

ASCII代码值的范围是0~127，不可能出现-1，因此可以用EOF作为文件结束标志。



"scanf("%d",&amp;n) != EOF"

相当于

"scanf("%d",&amp;n) != EOF"，或"~scanf("%d",&amp;n)"，或"scanf("%d",&amp;]]></description><category></category></item></channel></rss>