自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 『西工大-数据结构-NOJ』 018-建立二叉树的二叉链表(严6.65) 『西北工业大学』

通过前序序列和中序序列我们可以知道根节点,之后使用递归的方法构建二叉树的二叉链表,进而输出二叉树后序序列

2023-06-10 17:25:21 428

原创 2022 Github 上传仓库

由于2022后,Github上传不再支持用户名密码的方式了,记录一下新的上传方式,备忘。在配置好token后…1.新建仓库2.克隆仓库到本地git clone [SSH]3.本地修改4.在仓库文件夹中git add .git commit -m “first commit”git push origin main...

2022-05-31 14:09:32 1968

原创 2021 最新GitHub 通过Token令牌 从本地push更新项目的方法

2021 最新GitHub 通过Token令牌 从本地push更新项目的方法

2022-01-05 16:37:03 444

原创 Github push时报错 Failed to connect to github.com port 443: Timed out

Github push时报错 Failed to connect to github.com port 443: Timed out

2022-01-05 15:48:08 828

原创 Github push时报错 OpenSSL_read:Connection was aborted,error 10053

Github push时报错 OpenSSL_read:Connection was aborted,error 10053

2022-01-05 15:38:55 813

原创 2021 最新GitHub 获取Token令牌 通过Token令牌 从本地push上传仓库的方法(详细图文)

2021 最新GitHub 获取Token令牌 通过Token令牌 从本地push上传仓库的方法(详细图文)由于2021年8月13日后GitHub Push代码需要token令牌登录,与原先push方法不同,Mark一下。

2022-01-05 15:36:00 10290 1

原创 『西工大-数据结构-NOJ』 026-二叉排序树的合并(严9.38) 『西北工业大学』

解题思路:这道题要求实现两个二叉搜索树的合并。跟二叉树有关的题其实都不是很难,合理使用递归的思想去构造相关函数即可。这道题,其实可以转化为将一个二叉搜索树的全部元素插入到另一个二叉搜索树中,这样利用NOJ-025构造的插入函数就可以很容易的完成了。//因为我们无法将指针变量的本身传入函数,因此直接将指针传入函数可能会造成无效的处理//因为在C语言中,所有非数组形式的数据实参均以传值形式调用(对实参做一备份并传递给调用的函数,函数不能修改作为实参实际变量的值,而只能修改传递给它的那份备份)//..

2020-07-11 21:59:09 3013

原创 『西工大-数据结构-NOJ』 025-二叉排序树的插入和删除(严9.35、9.36和9.37) 『西北工业大学』

解题思路:这道题要求对二叉排序树实现搜索、插入和删除操作。跟二叉树有关的题其实都不是很难,合理使用递归的思想去构造相关函数即可。//因为我们无法将指针变量的本身传入函数,因此直接将指针传入函数可能会造成无效的处理//因为在C语言中,所有非数组形式的数据实参均以传值形式调用(对实参做一备份并传递给调用的函数,函数不能修改作为实参实际变量的值,而只能修改传递给它的那份备份)//此时我们通常有如下两种办法://1.通过return返回,例如 BT *T; T = creat(); ( BT *cr..

2020-07-11 21:52:30 2042 1

原创 『西工大-数据结构-NOJ』 024-二叉排序树的判别(耿8.6) 『西北工业大学』

解题思路:这道题要求用判别输入的二叉树是否为二叉排序树。跟二叉树有关的题其实都不是很难,合理使用递归的思想去构造相关函数即可。二叉排序树,即需要满足(T->left->data)<=(T->data)<=(T->right->data)即可。(这道题好像题库有点问题,直接printf(“yes”)就能通过)//因为我们无法将指针变量的本身传入函数,因此直接将指针传入函数可能会造成无效的处理//因为在C语言中,所有非数组形式的数据实参均以传值形式调用(..

2020-07-11 21:43:21 2082 2

原创 『西工大-数据结构-NOJ』 023-构造哈希表(耿8.12) 『西北工业大学』

解题思路:这道题要求对给定关键字序列使用哈希映射函数,并运用线性探测再散列法构造该关键字序列的哈希表,并求出查找成功的平均查找长度。这道题还是比较简单,没有复杂的数据结构要求和算法,只要对哈希算法比较了解,知道线性探测再散列法,这道题就比较简单了。具体操作见代码,代码中有部分注释。题解代码:#include <stdio.h>#include <stdlib.h>#define DATANUM 8#define HASHTABLENUM 11typedef ..

2020-07-11 00:52:49 2227

原创 『西工大-数据结构-NOJ』 022-Dijkstra算法(耿7.42) 『西北工业大学』

解题思路:这道题要求使用邻接来作为储存结构,使用Dijkstra算法计算源点到其余各点的最短距离,无法到达时令距离为-1.了解一下Dijkstra算法:而根据题目预期的Output来看,输出数据是按照最短路径升序输出的,因此我们还要对数据进行一次排序,最短路径升序优先,其次是目标点序号,之后将最短路径为-1的放在最后输出。具体操作见代码,代码中有部分注释。题解代码:#include<stdio.h>#include<stdlib.h>#define MAX..

2020-07-10 23:31:44 2623

原创 『西工大-数据结构-NOJ』 021-逆波兰表达式(耿7.38) 『西北工业大学』

解题思路:这道题要求使用有向无环图的邻接表来储存一个算术表达式(中缀表达式),并以逆波兰式(后缀表达式)的形式输出。这道题把波兰式转换与有向无环图的邻接表结合起来考察,波兰式转换是经典的栈的运用题,我实在是没想到怎么用有向无环图的邻接表来储存,只好采用了同为有向无环图的二叉树来储存算术表达式。赋与运算符优先级,以优先级最低的符号作为根节点,左右子串分别递归生成左右子树,来构造二叉树,之后递归进行后序遍历输出即可。代码中去除外层多余的括号的函数也很关键,这是构造子树的一个前提。具体操作见代码,代..

2020-07-10 23:14:46 3152

原创 『西工大-数据结构-NOJ』 019-基于图的深度优先搜索策略(耿7.10) 『西北工业大学』

解题思路:这道题要求使用邻接表的形式储存有向图,再用深度优先的搜索策略,判断是否存在vi到vj的路径。邻接表的宏定义大致如下:深度优先策略,即DFS,要用递归的方式去完成纵向遍历。具体操作见代码,代码中有部分注释。题解代码:#include<stdio.h>#include<stdlib.h>#define MAX 200#define FALSE 0#define TRUE 1typedef struct EdgeNode{ int end..

2020-07-09 01:50:02 2196 3

原创 『西工大-数据结构-NOJ』 017-输出以二叉树表示的算术表达式(耿6.51) 『西北工业大学』

解题思路:这道题要求通过给出的先序遍历二叉树的数据,构造二叉树,并输出其算术中缀表达式,即输出二叉树的中序遍历。二叉树部分知识比较简单好理解,就是要注意二叉树的操作均需要递归完成。其实我一般习惯是先给存储结构申请空间,用void函数对存储结构进行操作的,但是这个题在读取输入字符前无法确定是否需要申请空间,于是我选择在函数内申请空间。具体操作见代码,代码中有部分注释。题解代码:#include<stdio.h>#include<stdlib.h>typedef s..

2020-07-06 18:11:23 1580

原创 『西工大-数据结构-NOJ』 016-计算二叉树叶子结点数目(耿6.14) 『西北工业大学』

解题思路:这道题要求通过给出的前序遍历二叉树的数据,构造二叉树,并求出其叶子节点的数目。二叉树部分知识比较简单好理解,就是要注意二叉树的操作均需要递归完成。其实我一般习惯是先给存储结构申请空间,用void函数对存储结构进行操作的,但是这个题在读取输入字符前无法确定是否需要申请空间,于是我选择在函数内申请空间。具体操作见代码,代码中有部分注释。题解代码:...

2020-07-06 14:33:29 1425

原创 『西工大-数据结构-NOJ』 015-建立二叉树的二叉链表存储结构(严6.70) 『西北工业大学』

解题思路:这道题要求将输入的基本单元形如 ROOT(left,right)格式的数据以二叉树的形式储存(看代码注释),并以先序遍历输出。二叉树部分知识比较简单好理解,就是要注意二叉树的创建遍历等操作均需要递归完成。具体操作见代码,代码中有部分注释。题解代码:#include<stdio.h>#include<stdlib.h>typedef struct BinTreeNode{ char data; struct BinTreeNode *lef..

2020-07-05 23:33:58 1910

原创 『西工大-数据结构-NOJ』 013-以十字链表为存储结构实现矩阵相加(严5.27) 『西北工业大学』

解题思路:这道题要求用十字链表的储存结构储存稀疏矩阵,并进行加法运算。首先我们要了解一下为什么要用十字链表,对于一个稀疏矩阵,尤其是高维度时,如果以多维数组的形式开辟空间,会造成很大的不必要空间浪费,于是我们用十字链表,只存储稀疏矩阵中的非零元素,来达到储存稀疏矩阵的目的。当要进行矩阵的加、减、乘等运算时,有时非零元素的位置会发生很大的变化,三元组表为保持以行或列序为主而需要大量移动元素。但十字链表就比较灵活,它在三元组表的基础之上多了两个指针域,指向同一行中的下一个非零元素和同一列的下一个非零元..

2020-07-05 21:22:50 2317 4

原创 『西工大-数据结构-NOJ』 012-以三元组表为存储结构实现矩阵相加(耿5.7) 『西北工业大学』

解题思路:这道题要求用三元组表的储存结构储存稀疏矩阵,并进行加法运算。首先我们要了解一下为什么要用三元组表,对于一个稀疏矩阵,尤其是高维度时,如果以多维数组的形式开辟空间,会造成很大的不必要空间浪费,于是我们用三元组表,只存储稀疏矩阵中的非零元素,来达到储存稀疏矩阵的目的。常见的三元组和三元组表的宏定义如下:typedef struct{//定义三元组 int i,j; int val;}Triple;typedef struct{//定义三元组表 Triple *..

2020-07-04 22:35:38 2378 3

原创 『西工大-数据结构-NOJ』 011-循环右移(耿5.2) 『西北工业大学』

解题思路:这道题要求对于一个数组进行循环移位操作,讲真这是我在这门课的NOJ中遇到的我认为最简单的一个题了。没啥需要考虑的思路,输入数组,for循环进行k次右移,输出数组就OK了。具体操作见代码,代码中有部分注释。题解代码:#include<stdio.h>#include<stdlib.h>void CreatArray(int a[], int n){ for(int i=0;i<n;i++){ scanf("%d",&a..

2020-07-04 01:16:54 1707

原创 『西工大-数据结构-NOJ』 010-k阶斐波那契数列(严3.32) 『西北工业大学』

解题思路:这道题要求使用循环队列求斐波那契数列不大于max的最后k项的值。循环列表通常情况包含以下结构:typedef struct node{ int *data; int front; int rear; int N;}Queue;void CreatQueue(Queue *Q, int n)void AddElem(Queue *Q, int num)int Pop(Queue *Q)int Push(Queue *Q)这道题,难道..

2020-07-04 00:51:59 1848 1

原创 『西工大-数据结构-NOJ』 009-循环队列(严3.30) 『西北工业大学』

解题思路:这道题要求对一个循环队列,进行入队、出队和判满等操作,我们先了解一下比较常规的循环队列。以下是一个常见的循环队列的宏定义:typedef struct { int *base; // 初始化的动态分配存储空间 int front; // 头指针,若队列不空,指向队列头元素 int rear; // 尾指针,若队列不空,指向队列尾元素的下一个位置} SqQueue;然而,我们这道题要求的循环队列没有front成员,而是增加了length成员,这其实也无妨,..

2020-07-03 22:49:09 2749

原创 『西工大-数据结构-NOJ』 006-LOCATE操作(严2.38) 『西北工业大学』

解题思路:这道题要求使用双向链表储存一组数据,并且每个数据带有一个freq值,我们每次LOCAET访问某个数据,其freq值会自增,最后我们按照freq值由大到小的顺序保存链表,并输出。这道题我们首先要了解双向链表的创建,之后对其进行一个简单的自增,和一次简单的冒泡排序就可以输出数据了。但是既然这道题是以双向链表的形式储存,我们还是要想着去利用和完善一下双向链表的特殊性质的,代码中有一段主函数没使用的排序函数,是一个排序的思路,可惜好像有点问题不能正常运行,仅提供思路。具体操作见代码,代码中有部..

2020-07-03 09:40:06 2531 3

原创 『西工大-数据结构-NOJ』 005-单链表的删除(严2.29) 『西北工业大学』

这道题跟数据结构NOJ-003一模一样,下面是第三题的链接。https://blog.csdn.net/LanXiu_/article/details/107094831

2020-07-03 00:19:40 1650

原创 『西工大-数据结构-NOJ』 004-单链表的归并(耿2.11) 『西北工业大学』

解题思路:这道题要求将两个非递减有序的线性表(其实就是广义递增)合并为一个非递增(其实就是广义递减)链表,且使用原链表的节点储存,即只能有常数量级的额外空间开销。既然要倒序输出,我们有限考虑头插法完成新链表。这道题在合并的过程中我们加一个新头节点,就很好解决了。我们令新头节点为A链表的头节点,然后再新的头节点后依次插入节点即可。具体操作见代码,代码中有部分注释。题解代码:#include <stdio.h>#include <stdlib.h>typedef s..

2020-07-02 23:08:52 2496

原创 『西工大-数据结构-NOJ』 003-顺序表的删除(严2.29) 『西北工业大学』

解题思路:这道题要求对三个非递减有序的线性表(其实就是广义递增)中的A表进行删除操作,需删除的元素为B、C表中均出现的元素。我们比较好想到的一种方法,使用一个数组去储存重复元素,再进行去重操作,这种方式在重复率比较理想的情况下也不会造成太多的储存花销。具体操作见代码,代码中有部分注释。题解代码:#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct nod..

2020-07-02 22:35:57 3808 2

原创 『西工大-数据结构-NOJ』 002-线性表的就地逆置(耿2.9) 『西北工业大学』

解题思路:这道题要求用数组和单链表两种储存形式完成线性表就地逆置的算法,即只能有常数量级的空间开销。数组的拟制很简单,就从中间分开前后交换,注意元素个数为奇偶时中间位置的计算。单链表采用头插法,将原链表顺序插入即的到其逆序结果,画图可使链表算法更好理解。具体操作见代码,代码中有部分注释。题解代码:#include <stdio.h>#include <stdlib.h>//以数组作为储存结构void CreatArray(int n, int A[]){//创..

2020-07-02 22:35:18 2713 5

原创 『西工大-数据结构-NOJ』 001-顺序表的插入运算(耿2.4) 『西北工业大学』

解题思路:这道题要求在线性表上进行操作,我们可以使用顺序表或者链表,因为比较熟悉链表,我们以链表为例,之后也有用数组实现的简易方法。已知线性表为递增序且知道内容与元素个数,我们需要进行一次遍历并新元素插入即可。创建和输出链表没什么特别的,就是插入时要关注一下边界点的完善。具体操作见代码,代码中有部分注释。题解代码:链表实现:#include <stdio.h>#include <stdlib.h>typedef struct node{ int dat..

2020-07-02 22:34:40 3931 1

原创 GitHub超简单小白入门详细教程(11)——使用Git管理远程仓库

文章目录使用Git管理远程仓库使用远程仓库的目的Git克隆操作将本地仓库同步到Git远程仓库中使用Git管理远程仓库使用远程仓库的目的作用:备份,实现代码共享集中化管理Git克隆操作目的:将远程仓库(github对应的项目)复制到本地以test仓库为例,先点击GitHub仓库主页的Clone or download,在弹出的选项卡中复制该仓库的https地址之后再电脑中要克隆仓...

2020-02-25 19:42:53 230

原创 GitHub超简单小白入门详细教程(10)——修改/删除仓库文件

修改/删除仓库文件修改仓库文件1.修改工作目录中的‘hello world.py’文件2.使用git add命令,将修改后的‘hello world.py’文件提交到暂存区3.使用git commit -m命令,添加‘hello world.py’文件到仓库,并赋予备注删除仓库文件1.删除工作目录中的‘hello world.py’文件2.使用git rm命令,删除Git仓库...

2020-02-25 19:32:40 545

原创 GitHub超简单小白入门详细教程(9)——Git仓库的创建 和 向仓库添加文件

Git仓库的创建 和 向仓库添加文件Git仓库的创建1.创建Git仓库文件夹(以仓库名为test1为例)2.进入Git仓库文件夹,在文件内初始化Git(创建Git仓库)在文件内初始化Git(创建Git仓库),需要使用命令:git init向仓库添加文件1.创建‘hello world.py’文件到工作目录使用git status命令查看文件状态2.使用git add命令...

2020-02-25 19:21:11 341

原创 GitHub超简单小白入门详细教程(8)——Git的基本信息全局初始化

Git的基本信息全局初始化基本信息设置1.设置用户名,使用命令:git config --global user.name ‘GitHub用户名’2.设置用邮箱,使用命令:git config --global user.email ‘GitHub注册邮箱’3.查看设置,使用命令:git config --list该设置用于在GitHub仓库主页显示谁提交了该文件注意:g...

2020-02-25 18:58:27 216

原创 GitHub超简单小白入门详细教程(7)——Git的命令行模式 和Git的基本工作流程

Git的命令行模式 和Git的基本工作流程Git的命令行模式在你需要进行Git操作的目录中,右击,选择Git Bash Here,即可进入命令行模式。Git命令行模式的语法格式与Linux的命令行模式的语法格式一致,使用Git的命令行模式最好了解一下Linux的语法格式和Git中常用操作的命令。Git的基本工作流程Git的工作区域工作区(Working Directory):添...

2020-02-25 18:49:21 324

原创 GitHub超简单小白入门详细教程(6)——Git的下载安装与测试

Git的下载安装与测试下载官方下载地址:https://www.git-scm.com/download/win(一般通过IE或者Chrome下载外网资源都比较慢,大家以复制下载地址在迅雷等下载器中下载,速度就会快很多,这一招对其他外网资源也有效。)安装我的电脑是windows 64位的,以64位的安装为例:选择安装目录:选择组件(按照自身需求选择组件即可):以下一路ne...

2020-02-25 18:21:48 404

原创 GitHub超简单小白入门详细教程(5)——GitHub仓库的一些功能 和 开源项目贡献的流程

文章目录GitHub仓库的一些功能 和 开源项目贡献的流程GitHub仓库的一些功能上传文件搜索仓库文件下载/检出项目开源项目贡献的流程1.新建Issue2.Pull RequestGitHub仓库的一些功能 和 开源项目贡献的流程GitHub仓库的一些功能上传文件在仓库主页,点击Upload files,即可进入文件上传的界面点击Commit changes提交,之后会返回仓库主页...

2020-02-25 17:51:37 263 2

原创 GitHub超简单小白入门详细教程(4)——创建第一个仓库/项目 和 仓库的管理

文章目录创建第一个仓库/项目 和 仓库的管理创建第一个仓库/项目仓库的管理新建文件编辑/修改/删除文件创建第一个仓库/项目 和 仓库的管理创建第一个仓库/项目在GitHub主页点击Start a project创建一个新项目输入新仓库的一些基本信息,然后完成创建仓库主页说明仓库的管理新建文件在仓库主页点击”Create new file”来创建仓库文件点击”Commit...

2020-02-25 17:26:55 417

原创 GitHub超简单小白入门详细教程(3)——注册github账号(以及GitHub注册卡在第一步的解决方法)

注册github账号(以及GitHub注册卡在第一步的解决方法)GitHub官方网址:<github.com>通过GitHub官网网址我们可以进入GitHub登录/注册界面(未登录时)或者进入GitHub个人主页(已登录时),我们现在以未登录时为例:我们点击右上角的Sign up,注册一个账号。注意,如果在电脑上注册时无法显示验证码(验证码为旋转一个物体到水平),可以多换几...

2020-02-25 17:11:55 2609 2

原创 GitHub超简单小白入门详细教程(2)——GitHub的一些基本概念

文章目录GitHub的一些基本概念Repository(仓库)Fork(复制/克隆项目)Pull Request(发起请求)Star(收藏)Watch(关注)Issue(事务卡片)仓库主页个人主页GitHub的一些基本概念Repository(仓库)仓库是用来存放一个你的项目代码,换句话说,你想在GitHub上开源一个项目,那么你就必须要新建一个Repository,同样,如果你在GitH...

2020-02-24 18:01:40 238

原创 GitHub超简单小白入门详细教程(1)——了解Git与Github 和 使用GitHub的目的

文章目录了解Git与Github 和 使用GitHub的目的一、了解Git与Github1.1 什么是Git1.2 什么是版本控制系统1.3 什么是Github1.4 Github和Git是什么关系1.5 为什么学习github二、使用GitHub目的了解Git与Github 和 使用GitHub的目的一、了解Git与Github1.1 什么是GitGit是一个免费、开源的版本控制软件1...

2020-02-23 12:48:22 579

原创 『算法』『数据结构』 浅谈滑动窗口算法(思想)[双指针法中的左右指针法],理解程序员必懂必会的计算机常见算法——滑动窗口算法(思想)[双指针法中的左右指针法]

文章目录基本认识基本思想与原理适用的问题求解的步骤与模板引例部分实战部分趁热打铁 刷题练习部分(持续更新)基本认识滑动窗口算法可以用以解决数组、字符串的子元素问题。所谓滑动窗口,就像描述的那样,可以理解成是一个会滑动的窗口,每次记录下窗口的状态,再找出符合条件的适合的窗口。它可以将嵌套的循环问题,更高效的解决。基本思想与原理滑动窗口算法,可以将双层嵌套的循环问题,转换为单层遍历的循环问题。...

2020-02-15 02:44:31 558

原创 『算法』『数据结构』 浅谈贪心算法,理解程序员必懂必会的计算机常见算法——贪心算法

文章目录基本认识基本思想与原理适用的问题求解的步骤与模板引例部分实战部分趁热打铁 刷题练习部分(持续更新)基本认识贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的是在某种意义上的局部最优解。基本思想与原理贪心选择是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,...

2020-02-14 01:30:21 999

空空如也

空空如也

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

TA关注的人

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