- 博客(28)
- 收藏
- 关注
原创 数据结构与算法[哈希表]
目录一、哈希表结构1、什么是堆栈和队列?2、堆栈和队列的结构3、数组栈和链表栈的实现(java语言实现)一、哈希表结构1、什么是堆栈和队列?2、堆栈和队列的结构3、数组栈和链表栈的实现(java语言实现)...
2022-01-09 02:07:29 507
原创 数据结构与算法[栈与队列]
目录一、堆栈结构和队列结构1、什么是堆栈和队列?2、堆栈和队列的结构3、数组栈和链表栈的实现(java语言)4、数组队列和链表队列的实现二、使用步骤1.引入库2.读入数据总结提示:以下是本篇文章正文内容,下面案例可供参考一、堆栈结构和队列结构1、什么是堆栈和队列?堆栈和队列都是储存数据的结构,二者的不同在于储存方式不同,堆栈的储存是单开口,像是一个木桶,往里面放东西也只能从开口把东西拿出来,后进先出,队列是双开口,顺序储存数据,又顺序拿出数据,先进先出。堆栈支持的操作:push pop队列支持
2022-01-07 23:31:06 664
原创 数据结构与算法[排序算法&链表结构]
目录一、排序算法1、插入排序2、快速排序3、归并排序二、链表结构1、什么是链表?2、链表的结构AA >提示:以下是本篇文章正文内容,下面案例可供参考一、排序算法1、插入排序将一组数据中需要排序的数字每个单个拿出来进行排序,所需要的时间复杂度是:O(N)空间复杂度是:O(1)2、快速排序快速排序运用的是分治的思想,在每组数组中找到最后以一个元素作为中间元素将数组分割为两个部分,元素之前的部分小于该元素,元素之后的部分大于该元素,每个部分又不断找出新的元素进行归类排序,也就是说相比之前的排序
2022-01-06 02:10:06 584
原创 paython错误1
包的三种引用1、import […]可导入多个模块2、from […] import导入一个模块中的所有内容3、from […] import[…]导入模块中的指定内容1、问题描述print打印文件帮助信息时出现AttributeError: ‘builtin_function_or_method’ object has no attribute ‘doc’. Did you mean: ‘doc’?是引用包的问题将包的引用方式改了就行...
2022-01-04 19:56:39 336
原创 数据结构与算法-递归
目录前言:算法和数据结构是什么?一、递归1.什么是递归?2.线性递归3.二分递归4.斐波那契函数的两种递归求解前言:算法和数据结构是什么?算法是在对问题进行深入的思考和分析之后按照已有的框架和模式设计出合乎问题内在规律的解决办法,数据结构就是算法解决问题时进行组合的“零件”,好比乐高零件和拼凑图纸,要解决一个问题,成功拼出一个模型,必不可少的要将两者相结合,既要掌握已有的零部件,也要将它们放在合适的位置,使整个结构正常运转。接下来笔者将把自己在算法学习中的心得简洁的详尽叙述清楚,希望对于刚入门的同
2022-01-03 08:42:57 140
原创 linux vim打开文件出现错误解决方法
linux问题解决问题:在vim打开文件的时候出现以下情况重启服务器也还是存在问题出现原因:问题之所以出现是因为之前磁盘在打开文件的时候对打开的文件进行了镜像储存,而这个文件在退出的时候没有关闭,因此当文件再次打开的时候就不能打开解决方式:进入到提示的文件路径下,再将这个文件删除就可以正常打开了...
2022-01-02 20:09:22 1402
原创 c++知识从无到有(持续更新)
目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pa
2021-11-12 21:46:16 821
原创 vs2013如何调用监视窗口实现调试(如何打断点、逐步调试、逐过程调试、退出调试、条件调试)
目录1、打断点进入调试窗口2、F11逐步调试,F10整过程调试,shift+F5退出调试3、条件调试1、打断点进入调试窗口双击代码前的空白即可,再次双击取消断点。2、F11逐步调试,F10整过程调试,shift+F5退出调试F11逐步调试:逐步调试到这里我们可以看到,在走完公有属性里定义的方法(属性)之后,成员的值就被设置为了1F10整过程调试:整过程直接调试完成。shift+F5退出调试:3、条件调试...
2021-11-08 09:33:00 2813
原创 C语言基础复习(头文件、递归与非递归、指针的含义)
目录一、加深对函数的理解,函数是怎么在模块之间出传递的二、使用步骤1.引入库2.读入数据总结# 前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、加深对函数的理解,函数是怎么在模块之间出传递的今天我搞了一题很二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pd
2021-11-05 21:45:17 1102
原创 LINUX进程间通信命令(ipcrm ipcs)
目录一、ipcs二、ipcrm一、ipcsipcs -a 是默认的输出信息 打印出当前系统中所有的进程间通信方式的信息ipcs -m 打印出使用共享内存进行进程间通信的信息ipcs -q 打印出使用消息队列进行进程间通信的信息ipcs -s 打印出使用信号进行进程间通信的信息二、ipcrmipcrm -M shmkey 移除用shmkey创建的共享内存段ipcrm -m shmid 移除用shmid标识的共享内存段ipcrm -Q msgkey 移除用msqkey创建
2021-10-28 21:03:58 227
原创 进程间通信管道篇(匿名管道,命名管道)
目录一、匿名管道1.管道的概念2、管道与进程通信的关系3、建立管道4、单个进程使用管道读写5、实现两个进程间的匿名管道通信二、命名管道1.引入库2.读入数据总结一、匿名管道1.管道的概念管道就是内存中由操作系统维护的一块缓冲区。2、管道与进程通信的关系进程之间通信时通过管道作为中转站,一个输入一个读取,减少接口的复杂度。3、建立管道int pipe(int pipefd[2]);参数:整型数组,数组中保存是是文件描述符,分别是可读和可写。数组内的两个文件描述符都是是直接由pipe函数进行
2021-10-25 09:06:44 477 1
原创 Linux进程控制浅析
文章目录一、进程终止二、进程等待三、进程程序替换 学习linux有一个月了,学校也开了操作系统的课,最直观的感受是终于知道怎么在linux全黑的操作框里写一个程序并且执行,在学习之前有过觉得操作界面太原始的抱怨,令人生畏一整个但是和化繁为简一个道理,所谓便捷的前端网页显示也是代码累加的结果,作为一个操作系统实在不用花里胡巧的附赘,以上献给linux曾经让我提不起兴趣的操作界面。此后学习至此进程相关的基础知识已经接近尾声,操作系统作为软硬件资源分配的直属总管,程序里的逻辑由进程组合进一步完成实现
2021-10-13 00:54:51 108
原创 Linux部分指令 [ 打断点 程序崩溃(根据镜像文件)进行调试 mkfile指令]
程序调试断点调试指令:gdb[程序]I(list)查看源代码b[行号] 打断点./bb执行程序delete[端点的序号] 去除断点i b 查看断点信息使断点失效 disable[断电序号]使断点生效 enable [断点序号]r 使程序运行s 逐语句执行n 逐过程执行c 继续执行p 打印q 退出调试程序崩溃后的内存镜像文件(其中保存的是程序奔溃一瞬间内存当中的值)gdb [程序]、[coredumo文件] 数字 lp =‘a’;提示那行出现了错误bt 查看调用堆栈
2021-09-26 00:41:54 255
原创 Linux知识从无到有(持续更新)
1、冯诺依曼体系结构简单来说冯诺依曼体系之中的各个环节都是直接和内存打交道的数据流组成部分。2、操作系统的概念与目的概念:操作系统OS即任何一个计算机系统都包含的一个基本的程序集合,操作系统包括内核和其他程序。目的:实现与硬件交互,管理所有的软硬件资源,为用户使用程序提供更好的环境。操作系统提供接口供系统调用,部分开发者对系统调用进行封装形成库更方便开发者调用。进程概念概念:程序执行的实例,即操作系统要操作(管理)的对象。储存位置:进程控制块(process control block)
2021-09-15 23:26:09 239
原创 c++重载浅析
重载的含义c++允许在同一个作用域中某个函数和运算符指定多个定义,重载声明是指一个与之前已经在作用域里声明过的函数或者方法具有相同名称的声明,他们的参数列表和实现是不同的。重载函数在同一个作用域里,可以声明几个功能相似的同名函数,当时同名函数的参数个数,类型和我顺序必须不同。例如通过一个重载 printf 函数,输出不同 参数类型 的输出值。重载运算符重载的运算符是带有特殊名称的函数,函数名由关键字operator以及其后要重载的运算符符号构成,将对象作为参数进行传递,对象的属性用this运算符
2021-09-14 21:15:31 188
原创 数据结构 排序
1、冒泡排序+快速排序void swap(int *p1,int *p2)void BubbleSort(int *a, int n){ assert(a); int end = n; while (end > 0) { int flag = 0; for (int i = 1; i < end; ++i) { if (a[i - 1]>a[i]) { swap(&a[i - 1], &a[i]); flag = 1;
2021-09-08 21:53:44 117
原创 二叉树OJ题整理
题目:1、单值二叉树2、二叉树的最大深度3、反转二叉树4、检查两棵树是否相同5、对称二叉树(构造了另一个树)6、二叉树的前序遍历(根左右)7、二叉树的中序遍历(左根右)8、二叉树的后序遍历(左右根)9、平衡二叉树1、如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。bool isUnivalTree(TreeNode *root){ if (!root) return true; if((r
2021-09-06 20:32:37 331
原创 二叉树的基本实现
二叉树的定义:二叉树即结点构成的有限集合,通常形式为一个根节点加上左右子树二叉树的性质:每个节点最多有两棵子树,二叉树不存在度大于2的节点二叉树的子树有左右之分,子树的次序不可以颠倒代码实现:c++在这里插入代码片...
2021-09-05 20:11:09 107
原创 堆的基本实现
堆的定义:将元素按照完全二叉树的顺序存储方式存储在一个一维数组中,使之满足ki<=k2i+1 并且ki<=k2i+2(若相反则称为小堆(大小堆的判定看根节点))堆的性质:堆中某个节点的值总是不大于或者小于节点堆是一颗完全二叉树代码实现:c++#include "Heap.h"void Swap(HPDataType*x1, HPDataType*x2){ HPDataType x = *x1; *x1 = *x2; *x2 = x;}void AdjustDown(
2021-09-05 17:56:22 98
原创 栈与队列OJ题
1、栈与队列的实现//队列ListNode*BuyListNode(LTDataType x){ ListNode *node = (ListNode*)malloc(sizeof(ListNode)); node->data = x; node->next = NULL; node->prev = NULL; return node;}ListNode*ListCreate(){ ListNode*head = (ListNode*)malloc(sizeof(
2021-08-21 22:30:36 229
原创 顺序表双链表OJ题
1、实现双链表的增删查改#include"8.20.h"ListNode*BuyListNode(LTDataType x){ ListNode *node = (ListNode*)malloc(sizeof(ListNode)); node->data = x; node->next = NULL; node->prev = NULL; return node;}ListNode*ListCreate(){ ListNode*head = (ListNode*)
2021-08-20 20:26:20 149
原创 顺序表链表OJ题
1、输入一个链表,输出该链表中倒数第k个结点c++class Solution{public: ListNode * FindKthToTail(ListNode * pListHead, unsigned int k) { if (!pListHead || k <= 0) return nullptr; int n = 0; ListNode * cur = pListHead; while (cur) { cur = cur->next; ++
2021-08-19 18:59:17 186
原创 顺序表链表OJ题
1、单链表的增删查改#include "slist.h"SListNode*BuySListNode(SLTDateType x){ SListNode*node = (SListNode*)malloc(sizeof(SListNode)); node->data = x; node->next = NULL; return node;}void SListPrint(SListNode*plist){ SListNode*cur = plist;
2021-08-18 23:03:58 112
原创 顺序表数组OJ题
1、实现顺序表的增删查改你 你爸你妈头文件的编写:在这里插入代码片主要文件的编写:在这里插入代码片测试文件的编写:在这里插入代码片
2021-08-17 21:25:41 131
原创 C语言入门 文件操作
在初学C语言时,我们所编写的代码,测试数据对象的输入和输出都以终端为对象,在实际生活运用之中我们没有必要重复输入大量数据实现操作结果,将重复以及当下不被使用的数据储以文件的形式存在磁盘之中,便于操作。1、文件名组成:文件路径+文件名主干+文件后缀2、文件组成文本文件(以ASCLL字符的形式存储),二进制文件,所有在内存中的文件储存形式都是二进制,按需求转化成文本文件到外存中。3、文件指针FILE* pf;找到文件的具体位置4、打开文件FILE fopen(const charfilename
2021-08-16 20:12:55 61
原创 C语言入门 通讯录编写
在学习C语言一段时间之后我们对从语言学习到实际使用有了一定的了解,接下来就是运用此前知识的积累实现一个简单的通讯录系统。1、测试test.c部分的编写:(测试函数功能)#include"Conact.h"void menu(){ printf("*****************************\n"); printf("**1.add 2.del **\n"); printf("**3.search 4.modify **\n"); printf("**5.show 6.clea
2021-08-16 14:31:33 199
原创 结构体枚举联合例题
一、编程题例题:模拟实现atoiatoi的规则是:跳过不可见字符,碰到负号或者数字开始转换,转换到非数字字符为止。#include <stdio.h>#include <stdlib.h>#include <ctype.h>//VALID 表示结果合法//INVALID 表示结果非法enum State{ VALID,//0 INVALID//1};//默认结果可能非法,当正确转换后再改为合法enum State state = INVALID
2021-08-14 21:01:34 115
原创 C语言入门 mem系列常见函数(细讲memcpy和memmove)
**一、**memcpy和memmovememcpy和memmove是C语言库中的函数,它们的作用都是拷贝字符串,区别是memmove中src和和dest内存所指的内存区域可以重叠,memcpy中将src和dest所指的内存区域不可以重叠,且在复制之前要确保dest中有着足够的空间来容纳src的字符串。但当源内存和目标内存存在重叠时,memcpy会出现错误,而memmove能正确地实施拷贝,同时也增加了开销。memmove的处理措施:(1)当源内存的首地址等于目标内存的首地址时,不进行任何拷贝(2)
2021-08-13 23:08:52 875
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人