自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 VScode-git提交 无法推送refs到远端

在将代码同步到远端仓库时,弹窗提醒但尝试后发现“拉取”功能也无法解决问题,最后是因为文件过大原因,在这里记录一下解决方法,并整理了另一种可能错误。

2023-01-18 09:45:43 3802 1

原创 卷积神经网络-猫狗识别(附源码)

利用python实现一个卷积神经网络,训练猫狗数据集,实现对猫狗图片的预测识别

2023-01-17 11:47:29 13677 24

原创 最短路径(Dijkstra算法)

设置一个集合S存放已经找到最短路径的顶点,并设置一个源点,dist[]数组中存放源点距离每个顶点的最短距离,path[]数组中存放的是最短路径,基本过程可以如下描述:(下图来自懒猫老师的《数据结构》相关课程笔记)每个分量distfl表示当前所找到的从始点v到终点»的最短路径的长度。path[i]是一个字符串,表示当前所找到的从始点v到终点vi的最短路径。初态为:若从V有弧,则path[i]为0:否则置path[i]为-1。,将选定的源点加入U,将源点距(直接)其他顶点的距离赋值给dist[]数组。

2022-09-24 14:03:02 2656 2

原创 最小生成树(Prim算法,Kruskal算法)

用Prim算法和Kruskal两种算法实现构建并输出最小生成树

2022-09-06 15:54:58 4649

原创 图的遍历(广度优先遍历,BFS)

广度优先遍历入栈是按照层次将结点进行先后保存,先出栈的也是层数最小的结点,从而实现了广度优先遍历的按层数先后进行访问的要求。因为广度优先遍历操作中需要队列的基本操作,下面的队列(循环队列)为两种图的广度优先遍历共用的。输出: (结点数据为char类型时要注意输入时的空格和换行符的读取问题)图的遍历操作是从图中某一顶点出发,对图中所有顶点访问一次且仅访问一次。(1)在图中,遍历的起始顶点是编号最小的顶点。,将未被访问的邻接点访问并入栈(内层循环);(2)访问顶点v,顶点v入队列Q;(2)邻接表的广度优先遍历。

2022-09-03 11:00:25 4056 7

原创 图的遍历(深度优先遍历,DFS)

图的遍历之深度优先遍历详解,用邻接矩阵法和邻接表法两种方法实现,有测试用例及输出

2022-09-01 14:41:37 4755

原创 图的存储(邻接矩阵,邻接表,十字链表)

图的储存方式,邻接矩阵,邻接表和十字链表图解以及部分储存方式的完整代码实现

2022-08-12 18:06:31 413

原创 图的逻辑结构

1)图是由顶点的有穷非空集合和顶点之间边的集合,在图中,顶点个数不能为零,但可以没有边(2)有方向或箭头的边称为有向边,没有箭头的边称为无向边;图任意两顶点间都为有向边的图称为有向图,任意两顶点间都为无向边的图称为无向图。.........

2022-08-12 10:02:48 761

原创 哈夫曼编码(构建哈夫曼树)

给定一组具有确定权值的叶子结点,带权路径长度最小的二叉树1,权值越大的叶子结点越靠近根结点,而权值越小的叶子结点越远离根结点2,只有度为0(叶子结点)和度为2(分支结点)的结点,不存在度为1的结点哈夫曼编码就是在哈夫曼树的基础上,从叶子结点开始向上遍历,左孩子记录码为0;右孩子记录码为1。..................

2022-08-08 16:24:19 7384

原创 二叉树遍历的非递归算法

非递归的算法主要采用的是循环出栈入栈来实现对二叉树的遍历,下面是过程分析

2022-08-05 12:28:26 15293 9

原创 线索二叉树(线索链表遍历,二叉树线索化)

特别的是,对于D和F,D是中序遍历的开头结点,它没有前驱节点;F是中序遍历的结尾的结点,它没有后继节点,那么这时,寻找的规则是,如果结点的Ltag==1代表可以直接找到前驱节点;由下图可见,有的左右指针是连接的子树,没有链接左右子树的指针现在就通过红色的虚线指向了该结点的前驱或者后继。可以发现,相较于原来的二叉链表,这里在数据结构里添加了两个int类型,来规定左右指针的作用。再通过以下步骤创建一个线索二叉树(下图是中序线索二叉树的结构示意)线索二叉树,即在二叉链表的基础上,将二叉链表的。...

2022-07-27 22:47:19 4740 1

原创 树、森林与二叉树的转换

1.加线,将双亲和左孩子的右孩子,右孩子的右孩子,右孩子的右孩子的右孩子..相连。当所有二叉树连起来后,此时所得到的二叉树就是由森林转换得到的二叉树。依次把后一棵二叉树的根结点作为前一棵二又树根结点的右孩子。1.前序(根)遍历前序遍历森林即为前序遍历森林中的。2.后序(根)遍历后序遍历森林即为后序遍历森林中的。2.保留双亲与第一个孩子连线,删去与其他孩子的连线。可以发现树的后序遍历和转化后二叉树的中序遍历相等。可以发现树和转化后的二叉树的前序遍历相等。2.去线,将所有双亲和右孩子的连线。...

2022-07-27 14:57:37 2585 2

原创 根据二叉树的遍历结果确定二叉树

根据前序和中序遍历结果,后序和中序遍历结果求得唯一的二叉树并前序输出过程详解和完整代码

2022-07-24 11:14:37 1726

原创 二叉树的基本性质(链表和顺序存储的转换,结点个数,叶子结点个数,复制,删除)

二叉树的基本性质详解及完整实现代码

2022-07-20 18:37:35 945

原创 二叉树的遍历和创建

层序遍历这里使用了前面队列的知识,根据根指针,左孩子,右孩子的顺序逐个入队出队。(在层序遍历的时候需要调用,里面还有二叉树结构体的定义)(里面有些函数没用到)2.根指针出队,根指针有左孩子则左孩子入队;3.队首出队,队首有左孩子则左孩子入队;若二叉树为空,则空操作返回;若二叉树为空,则空操作返回;若二叉树为空,则空操作返回;(保存所有的遍历操作函数)2.前序遍历根节点的。3.前序遍历根节点的。1.前序遍历根节点的。3.前序遍历根节点的。1.前序遍历根节点的。2.前序遍历根节点的。.........

2022-07-19 15:08:10 802

原创 二叉树的基本性质和储存结构

二叉树的特点;特殊的二叉树:(1)斜树(2)满二叉树(3) 完全二叉树二叉树基本性质小结:二叉树的存储结构:(1)二叉树顺序存储(2)二叉链表(3)三叉链表

2022-07-15 09:51:48 219

原创 树的存储结构

以下总结树的四种存储结构,以下是树的基本结构示意图:这种方式是建立一个数组,里面的数据结构类型如下,分别存储了该结点的双亲的下标,第一个孩子的下标和兄弟的下标。(其中-1模拟链表中的NULL值)例如:怎么寻找结点的所有孩子呢?先找到该结点第一个孩子的下标,再访问第一个孩子的右侧兄弟,再访问右侧兄弟的右侧兄弟...以此类推,直到访问的结点没有右侧兄弟,即找到了所有的孩子。数据结构表示:2.孩子链表表示法2.1通过树的度来建立指针域,每个指针域指............

2022-07-14 11:42:04 2282

原创 稀疏矩阵的加法和乘法(三元组)

三元组方法:主要的特点就是最后的结果矩阵均由三元组的形式来表达,调用函数再以矩阵形式输出(1)稀疏矩阵加法(下图参考懒猫老师《数据结构》课程相关笔记)(2)稀疏矩阵乘法(稀疏矩阵(顺序).h--用来实现稀疏矩阵的基本操作和加乘功能;稀疏矩阵加乘.c--用来对稀疏矩阵的加乘操作进行验证)(1)稀疏矩阵(顺序).h(2)稀疏矩阵加乘.c(3)测试输出 (验证一下矩阵乘法~这里用的matlab)答案是一致的! 初学小白,有错误欢迎指正喔!~...

2022-07-12 16:27:12 10782

原创 矩阵压缩存储(对称,三角,对角,稀疏)

利用一维数组对各种特殊矩阵进行储存的方法,以及实现稀疏矩阵顺序存储的完整代码和测试用例

2022-07-12 15:12:18 4376 3

原创 字符串匹配(BF算法 +KMP算法)

BF算法,又称Brute Force暴力算法,从主串S的第一个字符开始和模式T的第一个字符进行比较,若相等,则继续比较两者的后续宇符;否则,从主串S的第二个宇符开始和模式T的第一个字符进行比较,重复上述过程,直到T中的字符全部比较完毕,则说明本趟匹配成功;或S中字符全部比较完,则说明匹配失败。可以参考下下图:(参考懒猫老师《数据结构》相关课程笔记) 即每一次匹配失败以后,指向主串的i向后移动一位,而指向模式串T的j总是回到串首,重新进行判断(这里我用了两种有些区别的方法实现了BF算法)KMP算法:....

2022-07-09 18:06:30 1302

原创 队列应用:银行排队模拟(离散事件模拟)

假设某银行有四个窗口对外接待客户,从银行开门到关门之前起不断有客户进入银行。由于每个窗口只能接待一个客户,因此在客户人数众多时需在每个窗口前顺次排队,对于刚进入银行的客户,如果某个窗口的业务员正在空闲,则可上前办理业务,反之,若四个窗口均有客户所占,他便会排在队伍最短的队伍后面。假设事件表中最早发生的事件是新客户到达,则随之应得到两个时间(均由随机生成数函数得到):(1)是本客户办理业务所需时间(2)是下一个客户将到达银行的时间间隔。现在,需要编制一个程序以模拟银行的这种业务活动并求出一天中客户在银行逗留的

2022-07-07 23:20:31 3986 1

原创 C语言-队列(链式队列,循环队列)

循环队列和链式队列详解及相关测试

2022-07-06 15:31:21 1979 3

原创 C语言-栈与递归-汉诺塔&八皇后(回溯法)

汉诺塔问题和八皇后问题的详细解答

2022-07-05 11:51:49 1032

原创 栈的应用:迷宫问题(DFS,非递归)

DFS迷宫问题超详解~

2022-07-04 08:45:49 1644 4

原创 C语言-实现栈的基本操作(链栈)

顺序栈和链栈比较:时间性能:相同,都是常数时间O(1)。空间性能:顺序栈:有元素个数的限制和空问浪费的问题。链栈:没有栈满的问题,只有当内存没有可用空间时才会出现栈满,但是每个元素都需要一个指针域,从而产生了结构性开销。总之,当栈的使用过程中元素个数变化较大时,用链栈是适宜的,反之,应该采用顺序栈。...

2022-07-03 11:43:36 3660 2

原创 C语言-用栈实现表达式求值

为实现算符优先算法,可以使用两个工作栈。一个称做 OPTR,用以寄存运算符;另一个称做 OPND,用以寄存操作数或运

2022-07-02 12:03:53 12579 8

原创 C语言-实现栈的基本操作(顺序栈)

下面用两种方式来构建顺序栈,分别是将top定义为指针类型和将top定义成指针下标两种形式,实现栈的基本操作。

2022-07-01 08:13:47 8550

原创 GO语言上手-基础语言

(这里是从基础开始学习golang的一些课程笔记,有错误欢迎指正!)tips:go 中所有声明 不调用就会报错,这里和C的规则不同源码储存:所有的程序都在src文件夹中,每一个程序又是一个单独的文件夹file->new-> 文件:Directory / 文件: go file(IDE:goland)一,命令执行的方式:(1)Terminal 命令执行框先用dir和cd找出执行命令的位置,再调用rundir:文件的当前位置cd:切换目录go run test.go:.

2022-05-15 17:45:58 231

原创 循环双向链表(特殊的约瑟夫环问题)

7-4 特殊约瑟夫问题编号为1…N的N个小朋友玩游戏,他们按编号顺时针围成一圈,从第一个人开始按逆时针次序报数,报到第M个人出列;然后再从下个人开始按顺时针次序报数,报到第K个人出列;再从下一个人开始按逆时针次序报数,报到第M个人出列;再从下个人开始按顺时针次序报数,报到第K个人出列……以此类推不断循环,直至最后一人出列。请编写程序按顺序输出出列人的编号。输入格式:输入为3个正整...

2022-03-08 09:52:45 1447

原创 6-5 链式表操作集 (20 分)

题目描述:其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode Position;typedef PtrToLNode List;各个操作函数的定义为:输入样例:612 2 4 87 10 242 12 87 5输出样例:2 is found and de

2022-03-06 16:14:23 108

原创 自测-4 Have Fun with Numbers (20 分)

题目描述:输入一个长度不超过20位的数字,数字位数由0~9组成,将这个数字加倍,得到的一个新的数字,若这个新的数字是由原来数字所包含的数字经排列组合得到的,则第一行输出“Yes”;第二行输出加倍后的数字;若这个新的数字含有原数字没有的数字或数量增加,则第一行输出“No”,第二行输出加倍后的数字。Sample Input:1234567899Sample Output:Yes2469135798做题笔记:1)关于整数类型储存数据长度的问题类型名称 ...

2022-02-22 16:35:14 163

原创 链表作业 3:多项式加法

题目描述:实现两个一元n次多项式的加法。例如P(A)=x+3x2-5x5+7,P(B)=2x2+6x3+x5-4x6,求P(A)+P(B)。输入:每行是两个用空格隔开的整数m,n,分别代表多项式的系数和指数,以输入0 0作为结尾输出:每次完成一个多项式的输入后,先输出该多项式;当第二个多项式输出完成后,下一行输出两个多项式输出的结果(多项式打印的要求: 如果是第一项,不要打+号 //如果不是第一项,且系数为正数,要打加号 //如果系数为负数,...

2022-02-16 11:56:29 1249

原创 链表作业2:约瑟夫环问题(猴子选大王)

问题描述:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下1只猴子时,这个猴子就是猴王,编程要求输入n,m后,输出最后猴王的编号。输入:每行连续的两个整数n,m,用一个空格分开,以0 0结束输入输出:每行一个整数,代表猴王的编号一,链表法方法:1.链表的创建(尾插法) 2.链表的删除易错点:1. 因为连续的输入,所以每次开始创建新链表的时候都要定...

2022-02-13 22:22:40 2735

原创 链表作业1:学生管理系统

要求:完成学生管理的链表程序。具有学生信息增加、显示、修改、删除、查找、学生人数统计功能的程序。增加学生信息时,按照学号排序;根据给定的学号,可以完成指定学号的修改、删除和查找功能。一.定义数据结构1)定义学生结构体的数据结构typedef struct Student{ char studentName[NAME_LENGTH];//姓名 char studentNo[NO_LENGTH];//学号 char studentgender[GENDER_LENGTH];//性

2022-02-06 16:28:32 479

原创 链表(单向,循环,双向)

目录一,单向链表1)结点的设置2) 创建一个单向链表1.头插法(特点:与输入数据的顺序相反储存)2.尾插法(特点:与输入数据的顺序相同)3)单链表结点的删除4)单链表的释放(唯一移动头指针的类型)二,循环链表 (能访问链表中某一结点前面的数据)三, 双向链表1)结点设置一,单向链表1)结点的设置typedef struct node { int data; //数据域 struct node *next; //指针域 ...

2022-02-05 23:02:59 267

原创 6-3 网络数据流 (100 分)

某公司收到了若干人员的信息,该信息是通过互联网以数据流的方式发过来的。这个数据流里全部是整数。每个人员信息的格式固定为三部分,第一部分为一个整数,代表这个人的编号,第二个部分也是一个整数,代表后边信息的长度n,即这个人的信息包含多少个整数。第三部分为n个整数,即这个人的信息。由于操作人员疏忽,这些人的信息并没有排序,现请你写一个函数将所有人员信息按编号排序并依次输出。输入:共两行,第一行为一个整数n,代表信息流的总长度, 第二行为n个用空格分隔的整数,代表全部信息。输出:若干行,每行为一个人员的..

2022-02-01 22:02:57 1046

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除