BinarySearchTree(二叉搜索树)的java泛型实现
对于BinarySearchTree类,一般的设计思想是使用 BinaryTree类作为BinarySearchTree类的父类,在BinaryTree类中实现二叉树的通用功能,再在BinarySearchTree类中实现它的特有功能。
BinaryTree类
类定义中的成员:
对BinaryTree类的定义使用一个内部的节点类对每个节点进行定义,包含E类的element,和三个Node类的指针left,right,parent.其中isLeaf方法和hasTwoChildren用于判断节点类型
在这里插入代码片 //节点类protected static class Node<E>{E element;Node<E> right ;Node<E> left ;@SuppressWarnings("unused")Node<E> parent;public Node(E element,Node<E> parent) {this.element=element;this.parent=parent;}public boolean isLeaf() {return left==null&&right==null;}public boolean hasTwoChildren() {return left!=null&&right!=null;}}
在对二叉树的遍历过程中,使用一个Visitor接口,用于用户自定义遍历逻辑,即用户可在其他类中通过Visitor接口中的visit方法定义对遍历到的元素进行怎样的操作,在遍历过程中,为使用户能够自定义遍历结束条件(即不需要每次遍历都遍历整棵树),特维持一个Boolean的变量stop作为遍历结束依据。
二叉树需要维持一个root指针和保存树中元素个数的整型size变量,需要有能够传递遍历方式的构造方法
public class BinaryTree<E> {protected int size;protected Node<E> root;//节点类protected static class Node<E>{E element;Node<E> right ;Node<E> left ;@SuppressWarnings("unused")Node<E> parent;public Node(E element,Node<E> parent) {this.element=element;this.parent=parent;}public boolean isLeaf() {return left==null&&right==null;}public boolean hasTwoChildren() {return left!=null&&right!=null;}}
类中各个方法:
几个简单但必要的方法如下:
//检查元素是否为空protected void elementNotNullCheck(E element) {if(element==null) {throw new IllegalArgumentException("element must not null");}}public int size() {return size;}public boolean isEmpty() {return size==0;}public void clear() {root=null;size=0;}
四种遍历方法
在遍历之前,需要了解到用户遍历树的过程需要对树进行怎样的操作,为了实现用户能够传递对树中元素的操作逻辑,需要使用如下接口,该接口通过visit方法定义用于对树中元素的操作逻辑,并通过一个boolean 型变量来作为遍历结束的控制条件(因为用户并不是每次都对整棵树进行遍历)。
public static abstract class Visitor<E>{//在此处定义一个boolean值,而不是在其他地方, 目的是获得较好的结构和实现。//每次调用遍历方法都传入一个Visitor,每个Visitor都维持一个stop变量。boolean stop;//visit 函数使用boolean返回值,如果返回true则结束遍历,如果返回false循环继续。abstract boolean visit(E elemnet);}
在定义了Visitor接口后,用户每次遍历树都需要传递遍历的逻辑,即一个Visitor类,并实现其中的vistor方法,于是四种遍历的实现如下:
前序遍历
public void preorder(Visitor<E> vistor) {if(vistor==null) return;preorderTraversal(root,vistor);}private void preorderTraversal(Node<E> node,Visitor<E> vistor) {//此处的vistor.stop是为了结束递归,即当vistor.stop==true时递归停止,函数执行结束if(node==null||vistor.stop) return;vistor.stop=vistor.visit(node.element);//每次循环保存当前的visit方法的返回值preorderTraversal(node.left,vistor);preorderTraversal(node.right,vistor);}
中序遍历
//中序遍历递归实现public void inorder(Visitor<E> vistor) {if(vistor==null) return;inorderTranversal(root,vistor);}private void inorderTranversal(Node<E> node,Visitor<E> vistor) {//此处的vistor.stop是为了结束递归,即当vistor.stop==true时递归停止,函数执行结束if(node==null||vistor.stop) return;inorderTranversal(node.left,vistor);//此处vistor.stop的作用是当node的左右子树递归中某次vistor.stop==true后,不在执行visit函数if(vistor.stop)return;//如果发现上一次循环的返回值为true则结束递归vistor.stop=vistor.visit(node.element);//每次循环保存当前的visit方法的返回值inorderTranversal(node.right,vistor);}
后序遍历
//后序遍历递归实现public void postorder(Visitor<E> vistor) {if(vistor==null) return;postorderTranversal(root,vistor);}private void postorderTranversal(Node<E> node,Visitor<E> vistor) {//此处的vistor.stop是为了结束递归,即当vistor.stop==true时递归停止,函数执行结束if(node==null||vistor.stop) return;postorderTranversal(node.left,vistor);postorderTranversal(node.right,vistor);//此处vistor.stop的作用是当node的左右子树递归中某次vistor.stop==true后,不在执行visit函数if(vistor.stop)return;//如果发现上一次循环的返回值为true则结束递归vistor.stop=vistor.visit(node.element);//每次循环保存当前的visit方法的返回值 }
层序遍历
//层序遍历public void levelOrder(Visitor<E> vistor) {if(root ==null||vistor==null) return;Queue<Node<E>> queue=new LinkedList<>();//创建一颗树queue.add(root);//头结点入队Node<E> node=null;while(!queue.isEmpty()) {//当队列不为空时循环node=queue.poll();//出队操作//调用visitor指定方法if(vistor.visit(node.element))return;//入队操作if(node.left!=null) {queue.add(node.left); }if(node.right!=null) {queue.add(node.right); }}}
判断树是否为完全二叉树的方法:
对于一棵完全二叉树,通过分析可知,其节点类型有三种:2度节点,1度节点和0度节点。当节点为2度时,表明该节点为树中间某节点,直接让它的左右节点入队,对于1度节点,当它右指针域不为空时直接表明该树不为完全二叉树,当它的左指针域不为空时,表明在它以后每次出队的节点都必须为叶子节点,如果不为叶子节点,说明该树不是完全二叉树。
public boolean isComplete() {if(root==null) return false;Queue<Node<E>> queue=new LinkedList<>();queue.add(root);Node<E> node=root;boolean leaf=false;while(!queue.isEmpty()) {node=queue.poll();//出队操作if(leaf&&!node.isLeaf()) {return false;}//该写法避免的重复判断if(node.left!=null) {queue.add(node.left);}else {if(node.right!=null) {//当左边不为空而右边为空时return false;}}if(node.right!=null) {queue.add(node.right);}else {//当右边为空时,表明该节点以后的节点都应该是叶子节点leaf=true;}}return true;}
求树高的方法
对于求树高函数,使用层序遍历的方法,在对二叉树的层序遍历过程分析中可知,每当遍历完一层元素,队列中剩余的元素就是下一层的全部元素,即队列中的元素个数就是下一层的元素个数。基于此,使用两个整型变量height和levelSize分别存放树高和每层元素个数,通过每次出队levelSize–,每次levelSize减到0就让height++同时用队列中的size重置levelSize,并可求得树高height。
public int height() {if(root ==null) return 0;int height=0;int levelSize=1;//第一层有一个元素Queue<Node<E>> queue=new LinkedList<>();//创建一颗树queue.add(root);//头结点入队Node<E> node=null;while(!queue.isEmpty()) {//当队列不为空时循环node=queue.poll();//出队操作levelSize--;//入队操作if(node.left!=null) {queue.add(node.left); }if(node.right!=null) {queue.add(node.right); }if(levelSize==0) {levelSize=queue.size();height++;}}return height;}
打印函数
由于普通的打印无法直观看到元素之间的关系,所以重写toString方法,通过每次打印都输出prefix获得树状结构的打印结果
@Overridepublic String toString() {StringBuffer sb=new StringBuffer();toString(root,sb,"---");return sb.toString();}private void toString(Node<E> node,StringBuffer sb,String prefix) {if(node==null) return;sb.append(prefix).append(node.element).append("\n");toString(node.left,sb,prefix+"L---");toString(node.right,sb,prefix+"R---");}
BinarySearchTree类
类中成员定义
在BinarySearchTree类中,需要有一个用于对节点域比较的方法,对于该方法,需要用户传递比较逻辑(与前面需要用户传操作元素的逻辑类似),该功能的实现方法是添加一行定义:
publicComparator<E> comparator;
然后其比较方法的函数如下,函数判断构造树的时候是否传入了一个比较器,如果传入了比较器,使用比较器定义的比较逻辑进行比较操作,如果没有传入比较器,将使用compare方法进行元素比较。对此应设置两个树的构造方法,有参构造(传比较器)和无参构造。
这种实现方法的特殊之处在于用户可以在构造树的时候传入一个自定义比较器,也可以在构造树的时候不传比较器而使用E类中实现的compare比较方法,也就是说,对于用同一个类构造的不同的树,可有不同的比较逻辑。
@SuppressWarnings("unchecked")private int compare(E e1,E e2) {if(comparator!=null) {return comparator.compare(e1, e2);}//如果没有传入比较器,就将元素强制转换成Comparable接口类,如果转换失败,表明元素不合法,自动报错,否则完成比较操作。return ((Comparable<E>)e1).compareTo(e2);}
添加的两个构造方法:
public BinarySeachTree(){this(null);}public BinarySeachTree(Comparator<E> comparator){this.comparator =comparator;}
元素添加方法
在比较逻辑完成的情况下,添加元素的方法实现如下:
public void add(E element) {elementNotNullCheck(element);//先检查元素是否为空//当root节点为空时if(root==null) {root=new Node<>(element,null);//此处不加<>会出现警告size++;return;}int cmp = 0;//定义为0避免警告Node<E> node=root;Node<E> parent = null;//初始为空避免警告//找到父节点while(node!=null) {parent=node;//保存父节点cmp=compare(element, node.element);if(cmp>0) {//如果待插入元素较大node=node.right;}else if(cmp<0) {//如果待插入元素较小node=node.left;}else {//如果相等,覆盖node.element=element;return;}}//将当前元素插入到父节点的指定位置if(cmp>0) {parent.right= new Node<>(element,parent); }if(cmp<0) {parent.left= new Node<>(element,parent); }size++;}
元素移除方法
对于元素移除方法,需要先有两个辅助函数, 获取某个节点的前驱节点或后继节点的函数。
获取元素的前驱节点,分为两种情况,一种是当该节点的左子节点不为空时,从其左子树依次往右节点查找,直到找到某个节点的右指针域为空,该节点即为所求的前驱节点;另种情况是左子树为空,此时该节点的前驱节点应为该节点的某祖宗节点,依次向上遍历,直到某一节点的父节点的右子节点为该节点。
//对于中序遍历返回某个节点的前驱节点 precursor 前驱private Node<E> precursor(Node<E> node){Node<E> pre=node.left;//情况1,当node的左子节点不为空时,说明前驱节点在左子树中,依次向右遍历,直到某一节点的右子树为空,该节点即为所求if(pre!=null) {while(pre.right!=null) {pre=pre.right; }return pre;}//情况2,,当node的左子节点为空,说明前驱节点为某一祖宗节点,判断,依次向上遍历,直到某一节点的父节点的右子节点为该节点//该情况包括如果祖宗节点中不存在某一节点的父节点的右子节点为该节点的情况返回null//第一次进行while判断语句时,如果node.parent为空,直接返回node.parent,之后每次向上,如果一直没找到node.parent.right!=node//依然返回空while(node.parent!=null&&node.parent.left==node) {node=node.parent;}return node.parent;}
后继节点逻辑类似,代码如下:
//对于中序遍历返回某个节点的后继节点protected Node<E> successor(Node<E> node){//当该节点存在右子节点时,该节点的后继在其右子树树中,从右子树的根节点依次向左遍历,知道某个节点的左子节点为空Node<E> child=node.right;if(child!=null) {while(child.left!=null) {child=child.left;}return child;}//当该节点没有右子树时,依次向其父节点遍历,直到某一个节点的父节点的左子节点为该节点时,这个节点即为所求while(node.parent!=null&&node.parent.right==node) {return node.parent;}return node.parent;}
再添加一个用于查找指定元素值的节点位置的方法:
//查找指定E类数值的元素所在节点位置的逻辑private Node<E> node(E element){Node<E> node=root;int tmp=0;while(node!=null) {tmp=compare(element, node.element);if(tmp==0) {//当值相等时return node;}else if(tmp<0) {node=node.left;}else {//if(tmp>0)node=node.right;}}//如果能够退出循环,说明在树中没有查找到指定值return null;}
还需要一个用于删除指定节点的方法
对于节点的删除,有删除2度节点,删除1度节点和删除0度节点三种情况。如果是二度节点,先将该节点的后继(也可以写前驱)节点的值域赋值给待删除节点,然后以后的操作就删除该后继(也可以是前驱)节点。而该后继(或者前驱节点)的删除逻辑和删除度为1或0 的节点的逻辑完全相同(因为某个节点的前驱节点或者后继节点的度数只能为0或1),所以将删除该节点的逻辑和删除度为1或0 的逻辑共用。
对度为1的节点,删除操作是让该点的父节点对应的指针域指向当前节点的不为空的指针域,对于度为0 的节点,让它父节点对应指针域为空。当然,如果待删除的节点为root节点,将特殊处理。
private void remove(Node<E> node) {if(node==null) return;size--;//if(node.hasTwoChildren()) {//当该节点有两个孩子节点,即度为2时Node<E> s=successor(node);//获取该节点的后继节点node.element=s.element;//将后继节点的值域的值赋值给待删除节点,后面的过程就只需要删除这个snode=s;//后面删除s的操作换成对node的操作}//删除node的过程//此时node节点的度数要么为0要么为1,Node<E> replacement=node.left!=null?node.left:node.right;//当节点度为1时if(replacement!=null) {replacement.parent=node.parent;//这一句写在前面,而不是写在各个if语句内,因为它对各个语句都适用if(root==node) {root=replacement;//此处本应该有一句将更改后的root的parent域置空,但是这类逻辑已经在前面用replacement.parent=node.parent;//进行了统一处理,所以不再需要该逻辑}else {if(node.parent.left==node) {//node为其父的左子节点node.parent.left=replacement;}else {//node为其父的右子节点node.parent.right=replacement;}}}else {//当node的度数为0时if(root==node) {//或者写成node.parent==nullroot=null;}else {//是叶子节点但不是根节点if(node.parent.left==node) {//当前节点为其父的左子节点node.parent.left=null;}else {//当前节点为其父的右子节点node.parent.right=null;}} }}
移除元素的方法
所以,在以上工作的基础上,删除指定元素的方法如下:
public void remove(E element) {//调用方法完成功能remove(node(element));}
判断某个元素是否存在
该判断逻辑实际上已经在node方法中出现过,所以方法代码如下:
//判断是否包含某个元素public boolean contains(E element) {//查找某个元素的逻辑已经在私有方法node中写完,直接调用即可return node(element)!=null;}
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 基于SpringBoot的数据库本地事务
CSDN学院:SpringBoot 数据库本地事务与多数据源事务 电商系统高阶实战 1. 事务使用案例与定义(引入) 1.1 订单系统的事务 订单系统表结构: 订单表——>订单明细表(商品的明细) 事务关系: 下单时,首先写入订单表,再写入订单明细表,即 insert into orders(); -- 写…...
2024/4/16 13:38:52 - Java批量下载图片(二):http(无额外jar),开线程提速
一、前言 之前的版本下载速度太慢了,睡醒突然想到我为什么不开个线程呢?于是刚刚花了几分钟开了线程试了一下,差不多一两秒中就可以下完一百张图片,速度提升肉眼可见。 二、结构三、代码 3.1启动main package lyrics.download;import lyrics.download.Service.DownloadServ…...
2024/4/16 10:53:10 - jQ图片列表光标移动动画
本效果使用jQuery和CSS实现了图片列表,当鼠标移入时图片向左微动,移出则复原。效果展示: http://hovertree.com/texiao/jquery/88/效果图如下:其中的jQuery事件使用mouseenter 和 mouseleave ,事件绑定方法使用新推荐的on方法。具体请参考:http://hovertree.com/h/bjaf/ug…...
2024/5/3 13:18:39 - ORA-01034:ORACLE not available
...
2024/4/16 10:53:25 - 二次规划问题的KKT 条件求解方法
专栏文章汇总文章结构如下:1: 等式约束优化问题2: 不等式约束优化问题3: 一个例子注:本文来自台湾周志成老师《线性代数》及其博客Karush-Kuhn-Tucker (KKT)条件是非线性规划(nonlinear programming)最佳解的必要条件。KKT条件将Lagrange乘数法(Lagrange multipliers)所处…...
2024/4/16 10:53:35 - 8-页面置换算法
页面置换算法最佳置换算法(OPT)先进先出置换算法(FIFO)最近最久未使用置换算法(LRU)时钟置换算法(CLOCK)改进的时钟置换算法请求分页存储管理与基本分页存储管理的主要区别:在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后…...
2024/4/16 10:52:49 - 小白篇之直播编码器NDI输入转HDMI输出
小白篇之直播编码器NDI输入转HDMI输出第一步:登录设备第二步: NDI解码设置第三步:设置HDMI输出 今天接到一个客户的需求,要求用ENC编码器从NDI输入信号,然后转HDMI输出,对于这个需求该编码器当然是可以实现的,看了说明书都应该会配置,但为了小白客户,我还是决定在这里…...
2024/5/3 13:53:19 - release下正常和debug下出现错误
基本配置 这里指的是,若此程序需要配置一些库文件等,则运行前注意,将debug也进行配置 配置方法参考自己之前release下的配置 莫名中断 具体说一下我遇到的问题 我的程序在release下可正常运行,不过程序结束后会出现中断,便在debug下运行,结果,在findContours()函数出现以…...
2024/4/16 10:54:21 - 【源码】app是如何启动的?深入解析android应用程序的启动过程(上)
应用程序的进程启动 简介 当我们打开android手机的时候,不知道你是否想过app是如何启动的呢? 接下来,我将从源码角度进行解析,当然,本文作为上篇,是介绍应用程序的进程启动过程,而不是应用程序的启动过程,他们的区别就是煮饭前要准备锅具,没有锅具就无法煮饭,本文就是…...
2024/4/1 1:06:14 - Caché托管事务实际使用
在“Cache死循环检测和申明式事务”里面介绍了申明式事务的实现。在实际使用中考虑到对老的兼容性,使用托管事务更实用,这次用实际代码展示写法的差异。 老事务写法很大的精力是在失败回滚事务后,用变量标记来防止后面做其他的增删改操作,或者接着执行后续逻辑直到报错。该…...
2024/4/16 10:53:10 - Unity 卡在 Unity Hub 显示Launch Unity
如上图,一直显示这个 ,只需要在任务栏里面 右键unity hub的图标 ,点击open Unity Hub 就可以成功进入unity hub的项目界面 ,完成。...
2024/4/16 10:53:15 - (C++)统计数字
计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值. 算法思路: 1.如果n的值比k的值小。那么直接return 0 2.从k+1开始。 3.取出每一个数字与k进行比较 #include <iostream> using namespace std;class Solution { public:/*** @param k: An integer* @param …...
2024/4/16 10:52:29 - Maven - 解决Maven下载依赖包速度慢问题
Maven - 解决Maven下载依赖包速度慢问题参考文章: (1)Maven - 解决Maven下载依赖包速度慢问题 (2)https://www.cnblogs.com/davidgu/p/6187207.html 备忘一下。...
2024/5/3 13:06:59 - [C++] PAT 1038 Recover the Smallest Number (30分)
Sample Input:5 32 321 3214 0229 87Sample Output:22932132143287题解: 参考了大佬的代码 1.以字符串接收数据, 2.之后对字符串数组进行排序,采用了贪心策略, 3.最后将字符串数组进行拼接为字符串s,得到最小的数, 4.注意是以非0开始,若s.length() == 0直接输出0 #inclu…...
2024/4/16 10:54:16 - CXF实现WebService
CXF搭建WebService服务端 引入依赖 <!--cxf依赖--> <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-spring-boot-starter-jaxws</artifactId><version>3.2.4</version> </dependency>编写服务接口 impo…...
2024/4/29 0:14:14 - Pandas:让你像写SQL一样做数据分析(一)
1. 引言Pandas是一个开源的Python数据分析库。Pandas把结构化数据分为了三类:Series,1维序列,可视作为没有column名的、只有一个column的DataFrame;DataFrame,同Spark SQL中的DataFrame一样,其概念来自于R语言,为多column并schema化的2维结构化数据,可视作为Series的容…...
2024/4/28 17:02:16 - (Windows)使用Python脚本修改pip源
此脚本在windows环境下运行import ospipfolder = os.getenv("USERPROFILE") + "\pip" # USERPROFILE是windows的一个环境变量,表示你的用户目录 pipfile = pipfolder + "\pip.ini" print(pipfolder) print(pipfile)if not os.path.exists(pip…...
2024/4/28 23:01:56 - 8266驱动spi屏ST7735小结
8266+arduino确实是一个神奇的组合,很适合新人入手,不过对于从51或者32转型的过来人,使用起来颇有些崴脚。首先是开源库的存在,依托arduino的开源,在IDE或者github有很多的开源库使用,我猜测现有的一些驱动,估计都能找到驱动库,具体怎么找可能就要自己花费些时间了。前…...
2024/4/27 23:57:41 - 谷粒学院项目
文章目录谷粒学院项目介绍一、功能简介二、技术架构后端环境搭建01-创建父工程一、工程结构二、创建父工程guli-parent1、创建Spring Boot项目2、删除src目录3、配置SpringBoot版本3.1、SpringBoot版本依赖4、配置pom依赖版本号5、配置pom依赖5.1、[pom.xml](https://guli--doc…...
2024/4/28 14:35:02 - 常用的鼠标事件
鼠标经过和鼠标得到焦点的区别 获取焦点事件一般用在输入框,光标就在输入框上。 鼠标经过事件是鼠标移进去就会发生...
2024/4/28 4:09:49
最新文章
- QT创造一个新的类(柱状图的类),并关联属性和方法
1.以在UI上添加柱状图的类为例(Histogram) #ifndef STUDY_HISTOGRAM_H #define STUDY_HISTOGRAM_H#include <QVector> #include <QWidget>// 前向声明 QT_BEGIN_NAMESPACE class QColor; class QRect; class QString; class QPaintDevice; …...
2024/5/3 17:52:18 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Docker Desktop+WSL2安装到自定义路径
现在大多数软件实在太“流氓”了,在安装过程中,根本不让你选择安装路径,默认安装到$HOME下(windows C盘),随着软件的使用增多,可能磁盘空间不够,这个时候就想着,看看某些…...
2024/5/2 2:42:35 - vue想要突破全局样式限制又不影响别的页面样式怎么办
<!-- 用scope盖不住全局,随意来个class匹配私定,搜索关键词:不要随便改,乱打class名 --> <style> .lkajsdfjkalsfhkljashkflhaskl .el-input.el-input--default.el-input--suffix { width: 160px !important; } …...
2024/5/3 1:37:13 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/1 17:30:59 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/2 16:16:39 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/2 9:28:15 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/30 9:43:09 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/2 15:04:34 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/29 20:46:55 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/30 22:21:04 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/1 4:32:01 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/30 9:42:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/2 9:07:46 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/30 9:42:49 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57