C++、数据结构
文章平均质量分 75
南国_之恋
每一个坚持c++的人都有一个淫荡的梦想,希望自己像硅谷天才工程师一样牛逼
展开
-
二叉树常见算法
1用一个函数判断一棵树是否平衡题目:实现一个函数检查一棵树是否平衡。对于这个问题而言, 平衡指的是这棵树任意两个叶子结点到根结点的距离之差不大于1。注意,对于这道题,要审清题意。它并不是让你判断一棵树是否为平衡二叉树。平衡二叉树的定义为:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1, 并且左右两个子树都是一棵平衡二叉树。 而本题的平衡指的是这棵树任意两个叶子结点到根结点的距离之差不大于1。(程序员面试金典)思路:对于本题,只需要求出离根结点最近和最远的叶子结点, 然后看它们到根结.转载 2021-03-18 10:54:42 · 912 阅读 · 0 评论 -
对多个有序数组,实现归并操作
工作中遇到了多个有序链的归并操作,这里记录一下解决方法。方便后续使用。归并的方法列2种:(1)堆排序, 或者胜利树。减少比较次数。效率高,实现比较麻烦。(2)普通方法,每次都需要比较。实现简单,一般用这个就可以。下面的代码是,普通的方法,支持多个有序数组的归并操作。#include <stdio.h>#include <climits>#include <vector>struct NodeList{ int *v...转载 2021-03-12 10:21:07 · 410 阅读 · 0 评论 -
四叉树Quadtrees在游戏领域应用
维基百科介绍:四元树又称四叉树是一种树状数据结构,在每一个节点上会有四个子区块。四元树常应用于二维空间数据的分析与分类。 它将数据区分成为四个象限。数据范围可以是方形或矩形或其他任意形状。所有的四元树法有共同之特点:可分解成为各自的区块每个区块都有节点容量。当节点达到最大容量时,节点分裂树状数据结构依造四元树法加以区分一些四元树的常用法图像表示法空间索引(Spatial index)。在二维的有效率之碰撞侦测(collision detection)。地形数据的隐...转载 2021-03-01 11:27:40 · 371 阅读 · 0 评论 -
空间索引 - 四叉树
前言作为程序员,应该都对二叉树都不陌生,我们都知道二叉树的变体二叉查找树,非常适合用来进行对一维数列的存储和查找,可以达到 O(logn) 的效率;我们在用二叉查找树进行插入数据时,根据一个数据的值和树结点值的对比,选择二叉树的两个叉之一向下,直到叶子结点,查找时使用二分法也可以迅速找到需要的数据。但二叉树只支持一维数据,如一个标量数值,对地图上的位置点这种有xy两个方向上的信息却无能为力,那么是否有一种树能够支持二维数据的快速查询呢?四叉树介绍四元树又称四叉树是一种树状数据结构,在每转载 2021-03-01 11:18:34 · 2460 阅读 · 1 评论 -
【转载】别再翻了,面试二叉树看这 11 个就够了
本文转载自博客:https://blog.csdn.net/qq_36903042/article/details/100798101-----------------------------------------------------------------------------------------------------------------------------------...转载 2019-10-11 16:01:49 · 178 阅读 · 0 评论 -
八皇后问题(最简单的递归解法)
题目原文:Write an algorithm to print all ways of arranging eight queens on a chess board so that none of them share the same row, column or diagonal.译文:经典的八皇后问题,即在一个8*8的棋盘上放8个皇后,使得这8个皇后无法互相攻击( 任意2...转载 2019-01-12 11:17:03 · 1339 阅读 · 0 评论 -
数据结构与算法(c++)——跳跃表(skip list)
本文转载自博客:https://www.cnblogs.com/learnhow/p/6749648.html-----------------------------------------------------------------------------------------------------------------------------------------------...转载 2019-01-07 10:39:17 · 347 阅读 · 2 评论 -
跳表的原理及实例-------- SkipList的基本原理
为什么选择跳表?目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗?很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用跳表吧,跳表是一种随机化的数据结构,目前开源软件 Redis 和 LevelDB 都有用...转载 2019-01-07 10:38:09 · 408 阅读 · 8 评论 -
SkipList 跳表 的原理和使用例子
跳表的原理与特点跳跃链表是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(log n)平均时间),并且对并发算法友好。基本上,跳跃列表是对有序的链表增加上附加的前进链接,增加是以随机化的方式进行的,所以在列表中的查找可以快速的跳过部分列表(因此得名)。所有操作都以对数随机化的时间进行。跳跃列表是按层建造的。底层是一个普通的有序链表。每个更高层都充...转载 2019-01-07 10:36:38 · 803 阅读 · 10 评论 -
数据结构-----跳表
本文转载自博客:https://blog.csdn.net/sinat_35261315/article/details/62890796---------------------------------------------------------------------------------------------------------------------------------...转载 2019-01-07 10:01:47 · 314 阅读 · 0 评论 -
堪称最好的A*算法
本文转载自博客:https://blog.csdn.net/b2b160/article/details/4057781------------------------------------------------------------------------------------------------------------------------------------------...转载 2018-12-07 17:32:25 · 362 阅读 · 0 评论 -
Python实例浅谈之三Python与C/C++相互调用
原文地址:http://www.cnblogs.com/apexchu/p/5015961.html一、问题 Python模块和C/C++的动态库间相互调用在实际的应用中会有所涉及,在此作一总结。二、Python调用C/C++1、Python调用C动态链接库 Python调用C库比较简单,不经过任何封装打包成s转载 2016-12-29 16:51:37 · 348 阅读 · 0 评论 -
从B 树、B+ 树、B* 树谈到R 树
从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。出处:http://blog.csdn.net/v_JULY_v 。 第一节、B树、B+树、B*转载 2016-08-19 15:39:50 · 303 阅读 · 0 评论 -
地图索引 R-tree
1984年,加州大学伯克利分校的Guttman发表了一篇题为“R-trees: a dynamic index structure for spatial searching”的论文,向世人介绍了R树这种处理高维空间存储问题的数据结构。本文便是基于这篇论文写作完成的,因此如果大家对R树非常有兴趣,我想最好还是参考一下原著:)。为表示对这位牛人的尊重,给个引用先:Guttman, A.; “转载 2016-08-19 15:10:24 · 1099 阅读 · 0 评论 -
面试笔记之链表篇
作为程序员,相较于其它行业的人们面试的时候有个很痛苦的问题就是,很注重基础的考察,特别是数据结构基础的考察,不管你经验多么的丰富,特别是职业生涯中后期侧重于架构或者更上层的开发,你往往会忽略了基础知识的复习,是的,平时工作那么忙,有什么现成的代码都是直接拷贝过去的,谁还会自己一行一行的去敲啊,这本无可厚非,而且还能很大的提高开发效率,但如果你想换工作了,去面试,那么你还不得不复习一下这些基础知识。转载 2015-08-20 11:37:43 · 444 阅读 · 0 评论 -
面试笔记之二叉树篇
树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。本文努力对二叉树相关题目做一个较全的整理总结,希望对找工作的同学有所帮助。转载 2015-08-19 21:59:42 · 348 阅读 · 0 评论 -
学习笔记之树的镜像
前段时间去一家公司参加面试,碰到了一个问题,讲的是树的镜像问题,当时莫名其妙,后面想想应该是跟平面镜成像原理似的,回来研究后得出如下结论。问题描述:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。例如输入: 8 / / 6转载 2015-08-19 15:56:37 · 412 阅读 · 0 评论 -
学习笔记之二叉树的创建
有以下4点1:树本身有一个根节点root2:静态内部类Node,其中有左子节点,右子节点,以及构造方法。3:还有insert方法,将节点插入到数的root下4:最后是一个构建树的方法5:再往下就可以是对节点的操作方法了。[java] view plaincopypublic class BinaryTree {转载 2015-08-19 16:36:17 · 427 阅读 · 0 评论