Welcome 微信登录

首页 / 操作系统 / Linux

二叉查找树详解及C++实现

二叉查找树详解及C++实现

注:资料主要参考算法导论二叉树常被用作二叉查找树和二叉堆。二叉查找树是一种很特殊的二叉树,弄懂了二叉查找树,再研究二叉树也就很容易了。二叉排序树(Binary Sort Tree)又称二叉查找树。它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树无论是树还是图,我们经常需要遍历所有的结点。对于二叉...
二叉查找树解析及其C++实现

二叉查找树解析及其C++实现

介绍二叉查找树,又称二叉搜索树、有序二叉树、排序二叉树。它是特殊的二叉树,对于二叉树,假设x为二叉树中的任意一个结点,x结点包含关键字key,结点x的key值记为key[ x ]。如果y是x的左子树中的一个结点,则key[ y ] <= key[ x ];如果y是x的右子树中的一个结点,则key[ y ] >= key[ x ];那么,这棵树就是二叉查找树,如下图所示:二叉查找树具有以下性质:1)若任意结点的左子树非空,则左子树上所有结点的值均...
栈的解析及C++实现

栈的解析及C++实现

介绍栈是一种线性结构,它有以下几个特点:1)栈中数据是按照“后进先出”方式进出栈的2)向栈中添加/删除数据时,只能从栈顶进行操作栈通常包括三种操作:top、pop、pushtop -- 返回栈顶元素pop -- 返回并删除栈顶元素push -- 向栈中添加元素常见错误:栈空时进行top或pop操作解决方法:用户在使用top或pop操作时,需确保栈是非空的栈的示意图出栈入栈栈的C++实现顺序栈顺序栈结构实现的头文件SeqStack.h...
RSA加密算法原理入门知识

RSA加密算法原理入门知识

以前也接触过RSA加密算法,感觉这个东西太神秘了,是数学家的事,和我无关。但是,看了很多关于RSA加密算法原理的资料之后,我发现其实原理并不是我们想象中那么复杂,弄懂之后发现原来就只是这样而已..学过算法的朋友都知道,计算机中的算法其实就是数学运算。所以,再讲解RSA加密算法之前,有必要了解一下一些必备的数学知识。我们就从数学知识开始讲解。必备数学知识 RSA加密算法中,只用到素数、互质数、指数运算、模运算等几个简单的数学知识。所以,我们也需要了解这几个...
PHP each() 函数用法简介

PHP each() 函数用法简介

each 函数用法简介验证each 函数对数组指针的操作影响个人小结each 函数简介(PHP 4, PHP 5, PHP 7) each — 返回数组中当前的键/值对并将数组指针向前移动一步array each ( array &$array )返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为0,1,key和 value。单元 0 和 key 包含有数组单元的键名,1 和 valu...
PHP 编译安装共享PECL扩展库

PHP 编译安装共享PECL扩展库

记下PHP 编译安装共享PECL扩展库,今天编译一个扩展,顺便把编译的方式给补全了下,希望可以帮到大家:PECL 简介编译共享PECL扩展库实例编译共享PECL扩展库相关扩展PECL简介PECL是通过PEAR打包系统来的PHP扩展库仓库。编译共享PECL扩展库用PEAR编译共享PECL扩展库使用pear建立共享php扩展库会更容易些,例如:$ pecl install extnamepecl 命令安装beta包:$ pecl install extname...
C语言指针简单理解

C语言指针简单理解

先放一个程序指针是什么?网上主要有这么几种说法1.指针就是一个存放地址的变量2.指针是无符号整数a3.指针是整型变量a4.指针是地址5.指针是一种类型1.首先 指针肯定不是 整型变量 用sizeof看 是4个字节 而且可以用%d输出。 与其说是整型变量,还不如说是无符号整数呢,但是说指针是无符号整数也存在明显的问题 下面用程序先推翻这两种说法。#include"stdlib.h"#include "stdafx.h"int main(){ int *p...
PHP使用OpenSSL来实现非对称加密

PHP使用OpenSSL来实现非对称加密

PHP使用非对称加密主要是借助OpenSSL的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。1.安装openssl和PHP的openssl扩展2.生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护openssl genrsa -out rsa_private_key.pem 10243.生成公钥:rsa命令用于处理RSA密钥、格式转换和打印信息openssl rsa -in rsa_private_ke...
PHP借助mcript扩展实现对称加密

PHP借助mcript扩展实现对称加密

1.对称加密主要利用相同的密钥来实现,而非对称加密利用公钥和私钥来加密,比较而言对称加密速度快,但是安全性要低非对称加密方式:http://www.linuxidc.com/Linux/2017-01/139851.htm为什么使用base64_encode(),主要是用于传参,直接加密完成后不是我们能理解的字符串,也就是大家所说的乱码2.进行加密(使用mcript扩展,DES类型),关键点在于$key="key:1111",相同的密钥串<?phph...
使用 Visual Basic 编写基于 Unity3D 的计算器

使用 Visual Basic 编写基于 Unity3D 的计算器

随着 .NET 全平台战略的推进,微软正在让以 C# 为先锋的 .NET 拥有跨平台特性。这个过程中一直有人想知道其它 .NET 语言对跨平台的支持有什么改进,熟悉 C# 但是喜欢用 VB 的我也不例外。经过一番摸索,我找到了在 Unity3D 程序开发过程中用 VB 取代大部分情况下的 C# 脚本的方法。本文以用 VB 2017 编写基于 Unity3D 的计算器为例展示如何在 Unity3D 中使用 VB。如何使用 Visual Basic 编写基于 ...
验证 .NET 4.6 的 SIMD 硬件加速支持的重要性

验证 .NET 4.6 的 SIMD 硬件加速支持的重要性

SIMD 的意思是 Single Instruction Multiple Data。顾名思义,一个指令可以处理多个数据。.NET Framework 4.6 推出的 Nuget 程序包System.Numerics.Vectors 里面的 Vector`1 类型是有硬件加速功能的。这个硬件加速功能就是指即时编译的时候根据硬件环境选用一些 SIMD 的指令让程序运行更快。这个硬件加速功能的威力可以用下面的方式得到验证。用单线程的程序重复 10000000H...
VB 2015 的 闭包(Closure)

VB 2015 的 闭包(Closure)

是的,你没看错,这篇文章讲的不是 ECMAScript 。目前 VB 14 比 C# 6 领先的功能里面,有个即将在 C# 7 实现的功能,叫做“本地方法”。这个功能与“匿名委托”的区别是:匿名委托不能直接存储到自动推断类型(在C#为var)的变量里,必须赋值给已经指定委托类型的变量,或者作为参数传递。而且匿名委托不允许声明为迭代器。利用这个特性,可以 随便抄网上的JS/ES的代码更方便地使用委托,但是需要注...
VS “15” 预览 5 中 VB 15 新增的功能

VS “15” 预览 5 中 VB 15 新增的功能

VS "15" 预览 5 给 VB 带来了更新。这次的更新内容有3个:* 值元组 ValueTuple这个功能能把一组计算结果成组返回。为了使用这个功能,我们要安装 System.ValueTuple 包。这是测试版的包,并且之前只仔细测试过 C# 的值元组功能。装上之后,定义一个简单的函数VBFunction TupleTest() As (Integer, b As String) Return (1, 2)End Function这个函数的返回值包...
Java 10将带来升级版的Lambda

Java 10将带来升级版的Lambda

一个新的JEP将用于增强lambda功能,提出的更改包括更好的消岐、对未使用的参数用下划线标注和外部变量的跟踪。虽然这些更改会使Java中的lambda表达式更类似于其它语言,但是初步讨论表明大家都不同程度地支持这个方案。这个JEP补充了一系列其他建议来改进Java语言,包括局部变量类型推断和增强的枚举,所有这些改进都可能出现在Java 10中。尽管上述三个更改都与lambda功能有关,但它们之间是相互独立的,其中一些可能会被舍弃,而其他的则取决于反馈情况...
单例模式详解

单例模式详解

关键代码:构造函数是私有的。优点:1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。单例模式的几种实现方式单例模式的实现有多种方式,如下所示:1、懒汉式,线程不安全是否 Lazy 初始化:是是否多线程安全:否实现难度:易描述:这种方式是最基本的实现方式,这种实现最...
装饰器模式详解

装饰器模式详解

目的:动态地给一个对象添加一些额外的职责。一般我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。在不想增加很多子类的情况下扩展类。将具体功能职责划分,同时继承装饰者模式。使用场景: (1)需要在不影响其他对象的情况下,以动态、透明的方式给对象添加职责。 (2)如果不适合使用子类来进行扩展的时候,可以考虑使用装饰器模式。具体例子: (1)组件对象的接口,可以给这些对象动态的添加职责public abstr...
<< 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 >>