<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Odfogy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Odfogy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Odfogy]]></copyright><item><title><![CDATA[数据结构与算法[哈希表]]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/122374392</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/122374392</guid><author>Odfogy</author><pubDate>Sun, 09 Jan 2022 02:07:29 +0800</pubDate><description><![CDATA[目录一、哈希表结构1、什么是堆栈和队列？2、堆栈和队列的结构3、数组栈和链表栈的实现（java语言实现）

一、哈希表结构
1、什么是堆栈和队列？
2、堆栈和队列的结构
3、数组栈和链表栈的实现（java语言实现）

...]]></description><category></category></item><item><title><![CDATA[数据结构与算法[栈与队列]]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/122367952</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/122367952</guid><author>Odfogy</author><pubDate>Fri, 07 Jan 2022 23:31:06 +0800</pubDate><description><![CDATA[目录一、堆栈结构和队列结构1、什么是堆栈和队列？2、堆栈和队列的结构3、数组栈和链表栈的实现（java语言）4、数组队列和链表队列的实现二、使用步骤1.引入库2.读入数据总结

提示：以下是本篇文章正文内容，下面案例可供参考
一、堆栈结构和队列结构
1、什么是堆栈和队列？
堆栈和队列都是储存数据的结构，二者的不同在于储存方式不同，堆栈的储存是单开口，像是一个木桶，往里面放东西也只能从开口把东西拿出来，后进先出，队列是双开口，顺序储存数据，又顺序拿出数据，先进先出。
堆栈支持的操作：push pop
队列支持]]></description><category></category></item><item><title><![CDATA[数据结构与算法[排序算法&链表结构]]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/122334937</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/122334937</guid><author>Odfogy</author><pubDate>Thu, 06 Jan 2022 02:10:06 +0800</pubDate><description><![CDATA[目录一、排序算法1、插入排序2、快速排序3、归并排序二、链表结构1、什么是链表？2、链表的结构
AA &gt;提示：以下是本篇文章正文内容，下面案例可供参考
一、排序算法
1、插入排序
将一组数据中需要排序的数字每个单个拿出来进行排序，所需要的时间复杂度是：O(N)空间复杂度是：O(1)

2、快速排序
快速排序运用的是分治的思想，在每组数组中找到最后以一个元素作为中间元素将数组分割为两个部分，元素之前的部分小于该元素，元素之后的部分大于该元素，每个部分又不断找出新的元素进行归类排序，也就是说相比之前的排序]]></description><category></category></item><item><title><![CDATA[paython错误1]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/122303254</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/122303254</guid><author>Odfogy</author><pubDate>Tue, 04 Jan 2022 19:56:39 +0800</pubDate><description><![CDATA[包的三种引用
1、import […]
可导入多个模块
2、from […] import
导入一个模块中的所有内容
3、from […] import[…]
导入模块中的指定内容
1、问题描述
print打印文件帮助信息时出现
AttributeError: ‘builtin_function_or_method’ object has no attribute ‘doc’. Did you mean: ‘doc’?
是引用包的问题将包的引用方式改了就行

...]]></description><category></category></item><item><title><![CDATA[数据结构与算法-递归]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/122283622</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/122283622</guid><author>Odfogy</author><pubDate>Mon, 03 Jan 2022 08:42:57 +0800</pubDate><description><![CDATA[目录前言：算法和数据结构是什么？一、递归1.什么是递归？2.线性递归3.二分递归4.斐波那契函数的两种递归求解


前言：算法和数据结构是什么？

算法是在对问题进行深入的思考和分析之后按照已有的框架和模式设计出合乎问题内在规律的解决办法，数据结构就是算法解决问题时进行组合的“零件”，好比乐高零件和拼凑图纸，要解决一个问题，成功拼出一个模型，必不可少的要将两者相结合，既要掌握已有的零部件，也要将它们放在合适的位置，使整个结构正常运转。接下来笔者将把自己在算法学习中的心得简洁的详尽叙述清楚，希望对于刚入门的同]]></description><category></category></item><item><title><![CDATA[linux vim打开文件出现错误解决方法]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/122279802</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/122279802</guid><author>Odfogy</author><pubDate>Sun, 02 Jan 2022 20:09:22 +0800</pubDate><description><![CDATA[linux问题解决
问题：在vim打开文件的时候出现以下情况重启服务器也还是存在问题

出现原因：
问题之所以出现是因为之前磁盘在打开文件的时候对打开的文件进行了镜像储存，而这个文件在退出的时候没有关闭，因此当文件再次打开的时候就不能打开
解决方式：
进入到提示的文件路径下，再将这个文件删除就可以正常打开了


...]]></description><category></category></item><item><title><![CDATA[c++知识从无到有（持续更新）]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/121197512</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/121197512</guid><author>Odfogy</author><pubDate>Fri, 12 Nov 2021 21:46:16 +0800</pubDate><description><![CDATA[目录前言一、pandas是什么？二、使用步骤1.引入库2.读入数据总结

前言
提示：这里可以添加本文要记录的大概内容：
例如：随着人工智能的不断发展，机器学习这门技术也越来越重要，很多人都开启了学习机器学习，本文就介绍了机器学习的基础内容。

提示：以下是本篇文章正文内容，下面案例可供参考
一、pandas是什么？
示例：pandas 是基于NumPy 的一种工具，该工具是为了解决数据分析任务而创建的。
二、使用步骤
1.引入库
代码如下（示例）：
import numpy as np
import pa]]></description><category></category></item><item><title><![CDATA[vs2013如何调用监视窗口实现调试（如何打断点、逐步调试、逐过程调试、退出调试、条件调试）]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/121200978</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/121200978</guid><author>Odfogy</author><pubDate>Mon, 08 Nov 2021 09:33:00 +0800</pubDate><description><![CDATA[目录1、打断点进入调试窗口2、F11逐步调试，F10整过程调试，shift+F5退出调试3、条件调试

1、打断点进入调试窗口
双击代码前的空白即可，再次双击取消断点。

2、F11逐步调试，F10整过程调试，shift+F5退出调试
F11逐步调试：


逐步调试到这里我们可以看到，在走完公有属性里定义的方法(属性)之后，成员的值就被设置为了1
F10整过程调试：

整过程直接调试完成。
shift+F5退出调试：

3、条件调试


...]]></description><category></category></item><item><title><![CDATA[C语言基础复习（头文件、递归与非递归、指针的含义）]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/121154009</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/121154009</guid><author>Odfogy</author><pubDate>Fri, 05 Nov 2021 21:45:17 +0800</pubDate><description><![CDATA[目录一、加深对函数的理解，函数是怎么在模块之间出传递的二、使用步骤1.引入库2.读入数据总结

# 前言
提示：这里可以添加本文要记录的大概内容：
例如：随着人工智能的不断发展，机器学习这门技术也越来越重要，很多人都开启了学习机器学习，本文就介绍了机器学习的基础内容。

提示：以下是本篇文章正文内容，下面案例可供参考
一、加深对函数的理解，函数是怎么在模块之间出传递的
今天我搞了一题很
二、使用步骤
1.引入库
代码如下（示例）：
import numpy as np
import pandas as pd]]></description><category></category></item><item><title><![CDATA[LINUX进程间通信命令（ipcrm ipcs）]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/121023236</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/121023236</guid><author>Odfogy</author><pubDate>Thu, 28 Oct 2021 21:03:58 +0800</pubDate><description><![CDATA[目录一、ipcs二、ipcrm

一、ipcs
ipcs -a  是默认的输出信息 打印出当前系统中所有的进程间通信方式的信息
ipcs -m  打印出使用共享内存进行进程间通信的信息
ipcs -q   打印出使用消息队列进行进程间通信的信息
ipcs -s  打印出使用信号进行进程间通信的信息
二、ipcrm
ipcrm -M shmkey  移除用shmkey创建的共享内存段
ipcrm -m shmid    移除用shmid标识的共享内存段
ipcrm -Q msgkey  移除用msqkey创建]]></description><category></category></item><item><title><![CDATA[进程间通信管道篇（匿名管道，命名管道）]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/120916399</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/120916399</guid><author>Odfogy</author><pubDate>Mon, 25 Oct 2021 09:06:44 +0800</pubDate><description><![CDATA[目录一、匿名管道1.管道的概念2、管道与进程通信的关系3、建立管道4、单个进程使用管道读写5、实现两个进程间的匿名管道通信二、命名管道1.引入库2.读入数据总结

一、匿名管道
1.管道的概念
管道就是内存中由操作系统维护的一块缓冲区。

2、管道与进程通信的关系
进程之间通信时通过管道作为中转站，一个输入一个读取，减少接口的复杂度。
3、建立管道
int pipe(int pipefd[2]);
参数:整型数组，数组中保存是是文件描述符，分别是可读和可写。数组内的两个文件描述符都是是直接由pipe函数进行]]></description><category></category></item><item><title><![CDATA[Linux进程控制浅析]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/120669212</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/120669212</guid><author>Odfogy</author><pubDate>Wed, 13 Oct 2021 00:54:51 +0800</pubDate><description><![CDATA[文章目录一、进程终止二、进程等待三、进程程序替换



   学习linux有一个月了，学校也开了操作系统的课，最直观的感受是终于知道怎么在linux全黑的操作框里写一个程序并且执行，在学习之前有过觉得操作界面太原始的抱怨，令人生畏一整个但是和化繁为简一个道理，所谓便捷的前端网页显示也是代码累加的结果，作为一个操作系统实在不用花里胡巧的附赘，以上献给linux曾经让我提不起兴趣的操作界面。
此后学习至此进程相关的基础知识已经接近尾声，操作系统作为软硬件资源分配的直属总管，程序里的逻辑由进程组合进一步完成实现]]></description><category></category></item><item><title><![CDATA[Linux部分指令 [ 打断点 程序崩溃（根据镜像文件）进行调试 mkfile指令]]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/120478621</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/120478621</guid><author>Odfogy</author><pubDate>Sun, 26 Sep 2021 00:41:54 +0800</pubDate><description><![CDATA[程序调试
断点调试指令：
gdb[程序]
I（list）查看源代码
b[行号] 打断点
./bb执行程序
delete[端点的序号] 去除断点
i b  查看断点信息
使断点失效 disable[断电序号]
使断点生效 enable [断点序号]
r 使程序运行
s 逐语句执行
n 逐过程执行
c 继续执行
p  打印
q 退出
调试程序崩溃后的内存镜像文件（其中保存的是程序奔溃一瞬间内存当中的值）
gdb [程序]、[coredumo文件]  数字  lp =‘a’；提示那行出现了错误
bt 查看调用堆栈]]></description><category></category></item><item><title><![CDATA[Linux知识从无到有（持续更新）]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/120312210</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/120312210</guid><author>Odfogy</author><pubDate>Wed, 15 Sep 2021 23:26:09 +0800</pubDate><description><![CDATA[1、冯诺依曼体系结构

简单来说冯诺依曼体系之中的各个环节都是直接和内存打交道的数据流组成部分。
2、操作系统的概念与目的
概念：操作系统OS即任何一个计算机系统都包含的一个基本的程序集合，操作系统包括内核和其他程序。
目的：实现与硬件交互，管理所有的软硬件资源，为用户使用程序提供更好的环境。

操作系统提供接口供系统调用，部分开发者对系统调用进行封装形成库更方便开发者调用。
进程概念
概念：程序执行的实例，即操作系统要操作（管理）的对象。
储存位置：进程控制块（process control block）]]></description><category></category></item><item><title><![CDATA[c++重载浅析]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/120295529</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/120295529</guid><author>Odfogy</author><pubDate>Tue, 14 Sep 2021 21:15:31 +0800</pubDate><description><![CDATA[重载的含义
c++允许在同一个作用域中某个函数和运算符指定多个定义，重载声明是指一个与之前已经在作用域里声明过的函数或者方法具有相同名称的声明，他们的参数列表和实现是不同的。
重载函数
在同一个作用域里，可以声明几个功能相似的同名函数，当时同名函数的参数个数，类型和我顺序必须不同。
例如通过一个重载 printf 函数，输出不同 参数类型 的输出值。
重载运算符
重载的运算符是带有特殊名称的函数，函数名由关键字operator以及其后要重载的运算符符号构成，将对象作为参数进行传递，对象的属性用this运算符]]></description><category></category></item><item><title><![CDATA[数据结构 排序]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/120186469</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/120186469</guid><author>Odfogy</author><pubDate>Wed, 08 Sep 2021 21:53:44 +0800</pubDate><description><![CDATA[1、冒泡排序+快速排序
void swap(int *p1,int *p2)
void BubbleSort(int *a, int n)
{
	assert(a);
	int end = n;
	while (end &gt; 0)
	{
		int flag = 0;
		for (int i = 1; i &lt; end; ++i)
		{
			if (a[i - 1]&gt;a[i])
			{
				swap(&amp;a[i - 1], &amp;a[i]);
				flag = 1;
]]></description><category></category></item><item><title><![CDATA[二叉树OJ题整理]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/120142626</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/120142626</guid><author>Odfogy</author><pubDate>Mon, 06 Sep 2021 20:32:37 +0800</pubDate><description><![CDATA[题目：
1、单值二叉树
2、二叉树的最大深度
3、反转二叉树
4、检查两棵树是否相同
5、对称二叉树（构造了另一个树）
6、二叉树的前序遍历（根左右）
7、二叉树的中序遍历（左根右）
8、二叉树的后序遍历（左右根）
9、平衡二叉树
1、如果二叉树每个节点都具有相同的值，那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时，才返回 true；否则返回 false。
bool isUnivalTree(TreeNode *root)
{
	if (!root)
		return true;
    if((r]]></description><category></category></item><item><title><![CDATA[二叉树的基本实现]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/120118612</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/120118612</guid><author>Odfogy</author><pubDate>Sun, 05 Sep 2021 20:11:09 +0800</pubDate><description><![CDATA[二叉树的定义：
二叉树即结点构成的有限集合，通常形式为一个根节点加上左右子树
二叉树的性质：
每个节点最多有两棵子树，二叉树不存在度大于2的节点
二叉树的子树有左右之分，子树的次序不可以颠倒
代码实现：
c++
在这里插入代码片


...]]></description><category></category></item><item><title><![CDATA[堆的基本实现]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/120118026</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/120118026</guid><author>Odfogy</author><pubDate>Sun, 05 Sep 2021 17:56:22 +0800</pubDate><description><![CDATA[堆的定义：
将元素按照完全二叉树的顺序存储方式存储在一个一维数组中，使之满足ki&lt;=k2i+1 并且ki&lt;=k2i+2(若相反则称为小堆（大小堆的判定看根节点）)
堆的性质：
堆中某个节点的值总是不大于或者小于节点
堆是一颗完全二叉树

代码实现：
c++
#include "Heap.h"
void Swap(HPDataType*x1, HPDataType*x2)
{
	HPDataType x = *x1;
	*x1 = *x2;
	*x2 = x;
}
void AdjustDown(]]></description><category></category></item><item><title><![CDATA[栈与队列OJ题]]></title><link>https://blog.youkuaiyun.com/Odfogy/article/details/119833131</link><guid>https://blog.youkuaiyun.com/Odfogy/article/details/119833131</guid><author>Odfogy</author><pubDate>Sat, 21 Aug 2021 22:30:36 +0800</pubDate><description><![CDATA[1、栈与队列的实现
//队列
ListNode*BuyListNode(LTDataType x)
{
	ListNode *node = (ListNode*)malloc(sizeof(ListNode));
	node-&gt;data = x;
	node-&gt;next = NULL;
	node-&gt;prev = NULL;
	return node;
}

ListNode*ListCreate()
{
	ListNode*head = (ListNode*)malloc(sizeof(]]></description><category></category></item></channel></rss>