自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python实现pdf文件转word文件

日常生活中,当遇到需要将某个PDF文件转换为Word格式文件时,一般是通过一些在线格式转换的网站,或者软件来完成,但我们也可以使用python来完成这个需求(当然,这种方法仅能够满足大部分的格式)。

2023-12-01 10:47:52 1163

原创 己知一棵有 2011 个结点的树,其叶结点个数为 116,该树对应的二叉树无右孩子的结点个数是

树转二叉树的规则:每个结点左指针指向它的第一个孩子,右指针指向它在树中相邻的右兄弟,即“左孩子右兄弟“。拓展:树中一个叶子节点在转化为二叉树的时候,如果它有右兄弟,那么它右指针会指向其兄弟节点,此时该叶子节点不再是叶子节点;如果他没有兄弟节点,转化后仍然是叶子节点。(即不论哪种情况,该节点都没有左孩子。树转化成二叉树的画法:①在兄弟结点之间加一连线;②对每个结点,只保留它与第一个孩子的连线,而抹掉与其他孩子的连线;③以树根为轴心,顺时针旋转45°。

2023-10-24 19:31:33 395

原创 设x为整数,[x]补=1,x1x2x3x4x5,若要x<-16,x1~x5应满足的条件是()

设x为整数,[x]补=1,x1x2x3x4x5,若要x

2023-10-09 21:09:33 688

原创 若[x]补 =1,x1x2x3x4x5x6,其中x取0或1,若要x>-32,应当满足

若x补​1x1​x2​x3​x4​x5​x6​其中x取0或1,若要x−32,应当满足()Ax1​为0,其他各位任意Bx1​为1,其他各位任意Cx1​为1x2​……x6​至少有一位为1Ax1​为0x2​……x6​至少有一位为1[x补​−32补​y补​两个补码相加得到的x补​,而x1​的位置,显然是1,且x2​。

2023-04-27 17:42:31 1114

原创 考研数据结构——树的性质

二叉树的性质

2022-10-24 21:28:57 470

原创 线性表元素的区间删除(一步步带你思考解答)

给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。函数接口定义:List Delete( List L, ElementType minD, ElementType maxD );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Posit

2021-05-14 23:17:25 1814 1

原创 判断一条链表中有无环路

两种链表一、普通单链表二、有环链表问题:判断一条链表中是否存在环。思路一:哈希存储,通过set集合存储遍历过的结点,遍历过程中检查set,若set中已存在某节点,则证明有环,返回true,若遍历正常结束,最终返回false,无环。(该方法易实现,此处略写。)思路二:双指针、快慢指针,设置一个fast指针和slow指针,slow每次移动一次(slow = slow.next),fast 每次移动两次(fast = fast.next.next)。若存在环,fast指针先进入环内循环,sl

2021-05-14 09:29:44 237 4

原创 寻找单链表的中间项

问题:寻找一条单链表中的中间项的值。链表结构体typedef struct Node{ int value; struct Node* next;}*Link;思路:使用快慢指针,设置两个指针(slow,fast)分别指向链表第一项,slow每次移动一次(slow = slow.next) ,fast 每次移动两次(fast = fast.next.next),当fast遍历完整条链表后,slow的位置即是中间项的位置。动画模拟:代码实现:int findMid(

2021-04-24 15:24:53 237

原创 自测-3 数组元素循环右移问题(一遍懂,两种方法)

一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯A**N−1)变换为(A**N−M⋯A**N−1A0A1⋯A**N−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。输出格式:在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不

2021-02-05 22:24:48 1702

原创 巧记LinkedList常用方法。

LinkedList类的方法比较多,总结一些常用的方法以及作为特定容器下的方法,方便记忆使用。文章目录一、作为链表基本用法二、作为堆栈基本用法三、作为队列基本用法一、作为链表基本用法增方法名返回值方法参数方法简介addboolean(E e)向尾部添加指定的元素。addvoid(int index, E element)在指定下标插入指定元素。删方法名返回值方法参数方法简介removeE(int index).

2021-02-04 22:00:37 315

原创 头插法和尾插法总结(动图版)

代码使用结构体:typedef struct Node{ int value; struct Node* next;}*Link;头插法:利用头指针控制链表节点的增加。核心:newNode->next = head->next;head->next = newNode;//头插法创建链表Link headCreateLink(int n){ //头指针初始化部分 Link head,newNode; head = (Link)malloc(sizeo

2021-02-03 22:44:58 32062 14

原创 7-52、两个有序链表序列的交集

已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 2 5 -12 4 5 8 10 -1输出样例:2 5一开始用Java写了两遍,都无法全部通过,最后一个样例不是运行超时就是内存超限,有用Java通过的小伙伴

2021-02-02 20:49:06 500 1

原创 6-7 在一个数组中实现两个堆栈 (20分)

本题要求在一个数组中实现两个堆栈。函数接口定义:Stack CreateStack( int MaxSize );bool Push( Stack S, ElementType X, int Tag );ElementType Pop( Stack S, int Tag );其中Tag是堆栈编号,取1或2;MaxSize堆栈数组的规模;Stack结构定义如下:typedef int Position;struct SNode { ElementType *Data; Posi

2021-02-01 21:05:36 159 1

原创 (两种方法)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素

为了方便描述过程,假定一个线性表结构体ArrayListtypedef struct ArrayList{ int data[N]; int index;//初始值为-1,代表里面没有元素,使用时代表下标。}*List;第一种方法:顺序双指针法指针i控制向后遍历,指针j记录需要交换的位置。、1、进入循环,当遇到item元素时,不做任何处理,否则将指针i指向的值赋予指针j的位置,且指针j右移2、循环终止,最终将线性表的index等于j-1的位置。(最后一步的index位置,看i

2021-01-31 23:15:59 12810 6

原创 数组的复制(Java技巧篇,四种方法详解)

使用java.lang.System类中的arraycopy方法优点:该方法可复制全部内容,也可复制一部分成为子数组,且目标数组与源数组没有关系,目标数组可以比源数组大,比较灵活。缺点:返回值为void,所以需要手动创建目标数组。/** *参数含义 * @param src 源数组(需要复制的数组) * @param srcPos 源数组中的起始下标。!注意是下标! * @param dest 目标..

2021-01-30 22:21:55 404 1

原创 PTA 6-1 单链表逆转 (20分) 三种解法

PTA 6-1 单链表逆转 (20分) 三种解法本题要求实现一个函数,将给定的单链表逆转。函数接口定义:List Reverse( List L );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode List; /* 定义单链表类型 */

2021-01-08 22:06:29 1157 1

原创 微信小程序——页面生命周期函数的总结

微信小程序——页面生命周期函数的总结onLoad页面加载 /** * 生命周期函数--监听页面加载 一个页面在卸载(销毁)前只会调用一次。 接收页面参数的来源有wx.navigateTo,wx.redirectTo和<navigator>中的query值 */onLoad: function (options) { },onShow页面显示 /** * 生命周期函数--监听页面显示 页面每次被打开都会执行该方法。

2020-11-18 22:25:03 4859 1

原创 微信小程序css卡片样式(带阴影效果)

微信小程序css卡片样式(带阴影)效果图wxml代码<view class="card"> </view> css样式.card{ width: 90%; margin-left: 5%; height: 390rpx; background: rgb(226, 208, 208); border-radius: 10rpx; box-shadow: 5px 5px 5px #cdcfcf; }css样式表注释/*卡片的宽度*/

2020-11-13 19:26:10 11481 2

原创 微信小程序学习——增加选项、删除选项

微信小程序 单击按钮后多添加一个输入框首先 WXML中要设置循环,实现动态的添加和删除<view> <view class="lines"> <button class="btn1" bindtap="add">添加</button> <button class="btn1" bindtap="delete">删除</button> </view> <view wx:for="{{re

2020-11-01 08:56:08 1736

原创 微信小程序 WeUI 之拓展组件tabs的引用。

微信小程序 WeUI 使用拓展组件tabs方法注意:不能使用 引入useExtendedLib 扩展库 的方式,而是用npm构建的方式。第一步:在项目根目录下打开终端。(我的是miniprogram)第二步:终端里输入:npm i @miniprogram-component-plus/tabs --save第三步:点击微信开发者工具的工具中,找到构建npm完成后在其目录下会生成一个miniprogram_npm\@miniprogram-component-plus\tabs目

2020-08-28 21:09:03 4964

原创 微信小程序简单使用拓展组件库方法

微信小程序使用拓展组件库方式:通过 useExtendedLib 扩展库 的方式引入方法:在全局app.json中添加"useExtendedLib": { "kbone": true, "weui": true }好处:在使用时可省略 import 步骤(相对于npm构建来说)使用:​ 先在所要引用的页面的json文件中添加对应组件名称(不需要在wxss中导入)例:{ "usingComponents": { "mp-cells": "weui-minipro

2020-08-25 20:16:22 1991

原创 leetcode:从上到下打印二叉树 II(层次遍历DFS与BFS版)

剑指 Offer 32 - II. 从上到下打印二叉树 II从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]看题就知道是层序遍历,模板题,BFS进行遍历即可,注意点是root为null时不是返回null,而是返回[],所以需要先new出来一个

2020-08-06 10:11:35 179

原创 leetcode:对称二叉树

101. 对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3看题第一想法就是一层一层的来,判断每一层是不是对称的,想着用队列BFS做,空的子树按照null来比较,下一层进队的时候按照front.left与re

2020-08-05 09:50:05 171

原创 leetcode:翻转二叉树

226. 翻转二叉树翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1我觉得这道题叫做镜像二叉树应该也可以吧。思路:首先想到的就是相当于一个镜像,而且是左右子树进行交换位置。代码就根据简单的树的遍历,借助于临时变量作为左右子树交换的媒介,然后递归。先写树的遍历框架:public TreeNode invertT

2020-08-04 21:06:22 100

原创 leetcode:删除排序数组中的重复项

删除排序数组中的重复项(力扣26)给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回

2020-08-03 21:44:24 397

原创 Java学习之反射机制

Java高级之反射Java反射机制是在程序的运行状态中,可以获取类或者对象的信息,包括对象所属的类,类的成员变量和方法,对象的属性和方法。基本使用涉及到的类:Class类、Constructor类(构造方法)、Method类(普通方法)、Field类(属性字段)。一、获取类对象。Java是一门面向对象的语言,所以通常使用的类也是对象,是特殊的类Class 的对象。Class 没有公共构造方法,Class 类的实例表示正在运行的 Java 应用程序中的类和接口。所有具有相同元素类型和维数的数组都

2020-07-24 16:30:00 104 2

原创 单例模式设计实现(四种方法)

Java单例设计模式一个类有且只有一个实例,保证在内存中只存在一个实例化的对象,避免对同一资源的多重占用。作用:创建一个类对象时,保证全局对外只提供一个实例对象,提供一种访问该类的唯一对象方式,直接访问不需要进行实例化。能够避免全局使用类被频繁创建销毁时的资源浪费。缺点:无接口,不能被继承。(static修饰所致)单例设计模式要素:一个私有的构造器一个私有的该类类型的变量必须有一个共有的返回类型为该类类型的方法,用来返回这个唯一的变量常用的四种单例设计模式(多使用饿汉式。)(使用p

2020-07-08 17:09:51 306

原创 二叉树相关性质(更新中……)

二叉树的性质(持续更新中……)在二叉树的第i层至多有2^(i-1)个结点(i>=1)(参考满二叉树,数学归纳法证明)深度为k的二叉树至多有2^k-1个结点(k>=1)(满二叉树与等比数列求和)二叉树的深度:一颗树只有一个节点,它的深度是1;根节点只有左子树而没有右子树,那么二叉树的深度应该是其左子树的深度加1;根节点只有右子树而没有左子树,那么二叉树的深度应该是其右树的深度加1;根节点既有左子树又有右子树,那么二叉树的深度应该是其左右子树的深度较

2020-07-03 23:23:51 316

原创 数据结构习题:设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针域为空的结点有多少个

设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针域为空的结点有多少个森林转二叉树:将森林中每棵树转换成相应的二叉树;第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子,当所有二叉树连起来后,此时,所得二叉树即是森林转换得到的。第一步:每棵树转二叉树第二步:二叉树合并二叉树转森林若某结点是其双亲的...

2020-04-15 11:07:23 30590 36

原创 6-8 求二叉树高度(数据结构与算法题目集(中文)PTA)

6-8求二叉树高度 (递归与非递归)本题要求给定二叉树的高度。函数接口定义:int GetHeight( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left;...

2020-04-09 20:56:00 1010

原创 二叉树的中序遍历(两种实现方式)

二叉树的中序遍历(递归与非递归实现)二叉树采用链式存储结构进行保存。二叉树的定义为:typedef struct Node{ ElemType data; //数据元素 struct Node *lchild; //指向左孩子 struct Node *rchild; //指向右孩子}BiTree;中序遍历中序遍历(LDR)是二叉树遍历的一...

2020-04-09 10:10:36 1407

原创 二叉树的先序遍历(两种实现)

二叉树的先序遍历(递归与非递归实现)​ 二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树这里采用链式存储结构进行保存。二叉树的定义为typedef struct Node{ ElemType data; //数据元素 struct Node *lchild; /...

2020-04-08 15:15:09 1522

原创 PTA 数据结构习题 7-2 符号配对 (20分)

题目请编写程序检查C语言源程序中下列符号是否配对:/* 与 */、( 与 )、[ 与 ]、{ 与 }。输入格式:输入为一个C语言源程序。当读到某一行中只有一个句点和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。输出格式:首先,如果所有符号配对正确,则在第一行中输出,否则输出。然后在第二行中指出第一个不配对的符号(注意点):如果缺少左符号,则输出;如果缺少右符号...

2020-03-17 17:09:34 10454 3

原创 Scala与Java的区别总结

Scala与Java的区别Scala是一种集成面向对象和函数式开发的开发语言,它运行在Java的JVM(虚拟机)上。通过编译后,编译出来的文件是一个.class文件,也就是Java的字节码文件,说明Scala与Java有很多相似之处,但一些方面又不同于Java。注意:以下Scala与Java对比,是与Java8版本进行对比。1. 变量Scala定义变量时,支持自动推测类型,采...

2020-03-15 18:01:02 3558

原创 Scala函数式编程基础篇(方法与函数)

3.1 函数与方法的定义和区别Scala中方法与java中类似,在类中进行定义,是类的一部分,有参数有返回值。函数在Scala中是一个对象(继承自Trait类),能够作为变量也能传递给其他函数。Scala 中使用val可以等于一个函数,使用def定义一个方法。函数不可以重载,方法可以重载函数和方法在使用上略有区别函数定义def 方法/函数[([参数:c参数类型])][:返...

2020-03-05 09:33:59 188

原创 初识数据结构(概念篇)

1.1 数据结构是什么数据结构+算法=程序数据结构是计算机存储、组织数据的方式1.2 数据结构基本概念1.2.1 基本概念数据(data):所有能输入到计算机中的描述客观事物的符号数值型数据非数值型数据数据元素(data element):数据的基本单位。(类似于数据库的一条数据(一整行))数据项(data item):独立含义的数据最小单位,也称域...

2020-03-05 08:42:31 526

原创 线性表的两种实现(附C与java代码)

2.1 认识线性表线性表的定义:用数据元素的有限序列表示同一线性表中的元素必定具有相同特性。线性表中的数据元素可以为简单类型,也可以为复杂类型线性表基本操作:初始化取值查找插入删除是否为空线性表长度2.2 线性表的顺序存储结构实现(数组实现)C语言中我们定义一个数据结构是通过结构体的定义来实现#define MAXSIZE 100 //定义最大长...

2020-03-04 22:14:33 398

原创 C/C++:指针和引用的关系

引用与指针的关系针对于指针与引用的介绍,话不多说,直接开讲。int a = 10;int *b = &a;int &c = a;cout<<"a本身代表的含义:a= "<<a<<" 对a取地址:&a= "<<&a<<endl;cout<<"b本身代表的含义:b= "&l...

2020-03-01 19:18:30 206

原创 Scala学习之Scala入门基础知识篇

二: Scala 入门2.1 var与valscala有两种变量类型为 var与val。一般val使用的更多。而他们在使用时必须先初始化,才能使用,否则报错,与java不同//例:var a = 10val b = 10//也可以带上数据类型val b:Int = 10 // <=> val b = 10//但是如果只创建且不初始化,会报错val a //这样...

2020-02-28 21:01:02 812 3

原创 Scala学习之初识Scala篇(下载与安装配置)

一 :初识Scala1.1:认识ScalaScala是一种集成面向对象和函数式开发的开发语言,它的运行在Java的JVM(虚拟机)上。所以你通过scalac 运行一个.scala文件后,编译出来的文件是一个.class文件,也就是Java的字节码文件,这也说明了scala能够直接使用Java类库。(后期补充:Scala是静态类型,且是一门多范式的编程语言。)1.2:下载与安装Scala环...

2020-02-28 20:28:32 228

空空如也

空空如也

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

TA关注的人

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