
C++数据结构
文章平均质量分 85
哦咧哇岸居
一个C++渣渣
展开
-
【C++数据结构】四叉树与平面碰撞检测
目录原理一. 四叉树1. 树的结构2. 数据的插入3. 数据的删除4. multimap的作用二. 碰撞检测1. 碰撞本质2. 碰撞检测机制的原理3. 与四叉树的结合源码实现测试案例测试代码运行结果:原理一. 四叉树1. 树的结构①树的每一个结点要么没有子结点,要么就有四个子结点,结点可以不存放数据。②在此次实现中,数据只存放于叶子结点,叶子结点中可存放多个数据,并使用链表存放数据。③每个数据视情况可插入到多个叶子结点中,.原创 2021-05-10 21:48:11 · 2164 阅读 · 2 评论 -
【C++数据结构】哈希表HashMap与HashSet
1. 前言 当前的存储结构本质上只有两种:数组、链表。原创 2020-10-21 00:45:04 · 3003 阅读 · 0 评论 -
【C++数据结构】Trie树
具体的Trie树结构请自行查找,下面只说我自己那部分的理解。①Trie树是一棵多叉树,那么管理好子结点对树的性能有很大的帮助,为了通用,我使用了红黑树结构作为子结点的管理结构。当然如果是查找英文串什么的,可以使用数组或者哈希。②Trie树是一棵前缀树,对前缀处理方便,我在此对后缀情况不作处理。③Trie树不宜随便删除结点,因此我也不提供删除功能,只提供修改功能。关于Trie树...原创 2020-03-10 00:37:08 · 355 阅读 · 0 评论 -
【C++数据结构】二叉树之三红黑树
本次实现的红黑树为基于上篇实现的普通二叉树之上实现的,普通二叉树的实现已经在https://blog.youkuaiyun.com/qq811299838/article/details/104038745这篇文章中列出,此处就不再放出来了。由于网上已经有很多红黑树的算法介绍,本文将不再介绍算法,只提供代码实现以及测试代码,如有问题,欢迎指出!关于结点删除:选用被删除结点中,左子树深度比右子树大,则选...原创 2020-02-13 10:30:18 · 318 阅读 · 0 评论 -
【C++数据结构】二叉树之二AVL树
本次实现的AVL树为基于上一篇实现的普通二叉树之上实现的,普通二叉树的实现已经在https://blog.youkuaiyun.com/qq811299838/article/details/104038745这篇文章中列出,此处就不再放出来了。AVL树使用普通二叉树的功能采用组合方式而非继承。AVL树最大的特点是每一个结点的左右子树的高度差都在2以内,特点比较简单,因此也容易实现。编译环境:GC...原创 2020-02-07 15:43:42 · 378 阅读 · 0 评论 -
【C++数据结构】二叉树之一普通二叉树
本次实现为平衡二叉树做基础,如有问题,欢迎指出!编译环境:GCC 7.3、vs 2005该普通二叉树的功能有:1. 新增结点。2. 删除结点。具体思路:①当被删除结点的左子树深度大于右子树时,将被删除结点 与 左子树中序遍历顺序的最后的结点 交换数据,然后以被交换的结点作为被删除的结点,继续执行删除操作,直到被交换的结点是叶子结点时,直接删除该叶子结点。②当被删除结点的左子...原创 2020-01-19 11:50:24 · 260 阅读 · 0 评论 -
【C++数据结构】单向链表forward_list实现
本次实现只是练习而已,如有问题,欢迎指出!编译环境:GCC 7.3、vs 2005与标准库list的差异:1. 没有splice2. 没有assign3. 没有resize好了,直接上代码:#ifndef __FORWARD_LIST_H__#define __FORWARD_LIST_H__#if __cplusplus >= 201103L#incl...原创 2020-01-15 17:30:28 · 540 阅读 · 0 评论 -
【C++数据结构】双向链表list实现
本次实现也是练习而已,如有问题,欢迎指出!编译环境:GCC 7.3、vs 2005与标准库list的差异:1. 没有splice2. 没有uniqe3. 没有merge4. 没有sort好了,直接上代码:#ifndef __LIST_H__#define __LIST_H__#if __cplusplus >= 201103L#include <...原创 2020-01-13 11:52:20 · 327 阅读 · 0 评论 -
【C++数据结构】动态数组vector实现
实现的vector跟标准库有那么一点点不同:1. 支持头部插入和删除,但头部无空位时插入失败2. 不检查越界3. resize后改变capacity,如果此时size大于capacity,则size = capacity,否则,size不变本次实现也是练习而已,如有问题,欢迎指出!编译环境:GCC 7.3、vs 2005很久以前实现过一次,现在重新实现,当作练习...原创 2020-01-11 11:39:57 · 328 阅读 · 0 评论