数据结构
小熊不去实验室
体感互动攻城狮一枚,主要研究:体感互动设备,互动开发平台,开发互动项目,希望向各位大牛多多学习~
展开
-
二叉树完整实现C++
总结网上一位大牛写的代码,看看人家,就写一个二叉树,就把C++继承多态的作用发挥出来,看咱只能简单定义一个class, 差距大啊~自己还是小白~BinaryTree.h#ifndef BINARY_TREE#define BINARY_TREE#include #include #include #include using namespace std;原创 2012-11-28 18:33:40 · 3490 阅读 · 2 评论 -
C/C++ 笔试面试(1)—— sizeof
sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不适合初学者,甚至都没有必要大作文章。但如果你想“知其然,更知其所以然”的话,那么这篇文章对你或许有所帮助。菜鸟我对C++的掌握尚未深入,其中不乏错误,欢迎各位指正啊1原创 2013-05-08 10:11:04 · 3268 阅读 · 1 评论 -
C++访问类中私有成员变量的方法
原则上,C++类中私有变量不允许在类之外的其他任何地方访问,一般来说功能完善的类都会提供get,set方法来操作类属性值,还有就是就是通过友元访问。但是!但如果没有get、set方法都没有提供,也没有定义友元,比如使用的是第三方提供的.o(或者动态库)来进行开发的,并且实际应用中我们确确实实需要改变其中某个对象的一个私有参数,有没有什么办法呢?还有一种比较文艺青年的方法,我们知道,一个进程有程序段原创 2013-04-08 17:26:40 · 18065 阅读 · 9 评论 -
每日一题(22)——区间重合检测(二)(线段树)
一、问题:给定一个窗口区域和系统界面上的N个窗口,判断这个窗口区域是否被已有的窗口覆盖。 二、数据结构之线段树作者:Dong |可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://dongxicheng.org/structure/segment-tree/1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”原创 2012-12-06 00:38:20 · 3230 阅读 · 0 评论 -
结构之美——优先队列基本结构(四)——二叉堆、d堆、左式堆、斜堆
实现优先队列结构主要是通过堆完成,主要有:二叉堆、d堆、左式堆、斜堆、二项堆、斐波那契堆、pairing 堆等。 1. 二叉堆 1.1. 定义完全二叉树,根最小。存储时使用层序。 1.2. 操作(1). insert(上滤)插入末尾 26,不断向上比较,大于26则交换位置,小于则停止。 (2). deleteMin(下滤)提取末尾元素原创 2012-12-03 18:40:28 · 5289 阅读 · 2 评论 -
每日一题(12)——计算Slim Span(并查集)
首先总结一下并查集:其中按秩合并分为:按树的深度和树的大小合并,效果都相同。 问题ID:POJ3522Slim SpanTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 5098 Accepted: 2671原创 2012-11-24 22:53:37 · 1552 阅读 · 0 评论 -
结构之美——优先队列三大结构(一)——二项堆
这三篇文章主要讲解二项堆、斐波那契堆、Pairing 堆,这三种结构主要用于优先队列的实现。资料主要参考《算法导论》和或互联网。 《算法导论》第19章讲到了二项堆 1.二项堆简介 二项堆是二项堆是由一组二项树组成原创 2012-11-02 20:09:57 · 8431 阅读 · 0 评论 -
结构之美——优先队列三大结构(二)——斐波那契堆(Fibonacci Heap)
1.简介斐波那契堆是一种松散的二项堆,与二项堆的主要区别在于构成斐波那契堆得树可以不是二项树,并且这些树的根排列是无序的(二项堆的根结点排序从左到右是按照结点个数排序的,不是按照根结点的大小)。斐波那契堆得优势在于它对建堆、插入、抽取最小关键字、联合等操作能在O(1)的时间内完成(不涉及删除元素的操作仅需要O(1))。这是对二项堆效率的巨大改善。在EXACT-MIN|, DELETE的操作原创 2012-11-05 20:43:29 · 8978 阅读 · 2 评论 -
结构之美——优先队列三大结构(三)——Pairing Heap
转自http://dsqiu.iteye.com/blog/17149611.Pairing Heap简介斐波那契堆主要有两个缺点:编程实现难度较大和实际效率没有理论的那么快(由于它的存储结构和四个指针)。Pairing Heap的提出就是弥补斐波那契堆的两个缺点——编程简单操作的时间复杂度和斐波那契堆一样。Pairing Heap其实就是一个具有堆(最大堆或最小堆)性质的树,它的特性转载 2012-11-05 20:45:52 · 6034 阅读 · 0 评论 -
每日一题(11)——单链表常见问题
一、单链表的存取 1.找出单链表的倒数第K个元素(仅允许遍历一遍链表)两个指针fast,slow:fast首先前进到第k个位置;然后两指针共同后移,直到fast到达末尾,slow所指元素即为所求。 2.找出单链表的中间元素(仅允许遍历一遍链表)两个指针fast,slow:fast每次后移2次,slow每次后移1次,直到fast到达末尾,slow所指元素即为所原创 2012-11-23 23:50:49 · 1746 阅读 · 0 评论 -
每日一题(27)——C++单例模式
1.简介: 单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 单例模式有许多种实现方法,在原创 2013-01-20 10:45:56 · 1464 阅读 · 2 评论