指针与自由存储空间
card title="声明" color="info"文章内容来自于《C++ Primer Plus》,本文重新组织语言,选取书本部分内容重新组合。/card 一、使用new来分配内存 前面我们都将指针初始化为变量的地址;变量是在编译时分配的有名称的内存,而指针只是为可以通过名称直接访问的内存提供 了一个别名。指针真正的用武之地在于,在运行阶...
指针
card title="声明" color="info"文章内容来自于《C++ Primer Plus》,本文重新组织语言,选取书本部分内容重新组合。/card 一、什么是指针 指针是一个变量,其存储的是值的地址,而不是值本身。在讨论指针之前,我们先看一看如何找到常规变量的地址。只需对变量应用地址运算符(&),就可以获得它的位置,例如,如果ho...
C/C++的读入与输出
card title="注意" color="info"无特殊说明,本文中的读入数据来自键盘,输出到屏幕。/card 一、printf用法(格式输入函数) 1. printf函数主要用于输出,它可以将格式化的数据输出到屏幕上,让我们能够清晰地看到程序运行的结果。 2. printf是在标准库的头文件stdio.h定义的,使用这个函数之前,...
平衡二叉树(Treap)
二叉搜索树的插入、查找、删除等操作的效率与树高成正比,因此在创建二叉搜索树时要尽可能地通过调平衡压缩树高。平衡树有很多种,例如AVL树、Treap、伸展树(Splay)、SBT、红黑树等。 Treap简介 特点与作用 Treap,即Tree+Heap,又叫做树堆,它同时满足了二叉搜索树和堆两种性质。二叉搜索树满足中序有序性,输入的序列不...
可持久化线段树
card title="主席树" color="info"主席树,又叫可持久化权值线段树,也叫函数式线段树,是可持久化线段树的子集。在本文中,我们可以认为主席树等于可持久化线段树/card 可持久化线段树简介 基本结构、特点、作用在这篇文章中已经提到过:线段树扩展:权值线段树http://www.laoguantx.top/线段树扩展:...
二叉堆
二叉堆简介 二叉堆是一种基础数据结构,对于其他数据结构来说,支持的操作有限,也就插入,查询,删除这一类。 二叉堆的结构 从二叉堆的结构说起,它是一棵二叉树,并且是完全二叉树,每个结点中存在一个权值。堆性质:父亲的权值不小于儿子的权值(大根堆)。同样的,我们可以定义小根堆。本文以大根堆为例。由堆性质,树根存的是最大值。对于堆的每个子树,它同...