数据结构

C++STL之Set容器

C++STL之Set容器1.简介Set(集合)属于关联式容器,也是STL中最实用的容器,关联式容器依据特定的排序准则,自动为其元素排序。Set集合的底层使用一颗红黑树(可能读者对此不太了解,等但学到树论与图论的章节的时候就会……

解析数据结构:八大数据结构分类

解析数据结构:八大数据结构分类数据结构分类数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示:每一种数据结构都有着独特的……

图的存储-邻接矩阵及C/++代码实现

图的存储-邻接矩阵及C/++代码实现1.什么是图图论(graphtheory)是数学的一个分支,它以图为研究的对象。图论本身是应用数学的一部分,历史上图论曾经被很多数学家各自独立建立过。关于图论的最早文字记载最早出现在欧拉1736年的论……

顺序存储和链式存储

顺序存储和链式存储1.再谈数组—顺序存储我们在开始计算机课程没多久后就已经知晓了数组的概念,数组作为一个顺序储存方式数据结构为我们的程序设计带来了大量的便利,几乎任何的高级程序设计,算法设计都离不开数组的灵……

栈的定义和特点

栈的定义和特点数据结构的重要部分,栈,栈是OI中常用的一种线性数据结构,请注意,本文主要讲的是栈这种数据结构,而非程序运行时的系统栈/栈空间,大家一定要弄清晰,别混淆了。栈的定义和特点栈(stack)是一个特殊的线……

用数组实现模拟算法C/C++实现(配例题)

用数组实现模拟算法C/C++实现(配例题)1.概念数组这个概念并不陌生,然而,数组本身也是一种数据结构。数组在存储数据时是按顺序存储的,存储数据的内存也是连续的,所以他的特点就是寻址读取数据比较容易,插入和删除比较困难。简单解释一下为什么,在……

动态查找-二叉排序树介绍与实现

动态查找-二叉排序树介绍与实现1.算法简介二叉排序树(BinarySortTree),又称二叉查找树(BinarySearchTree),亦称二叉搜索树。该树属于一种输入数据就默认产生一种顺序的数据结构,这不像本章前面的内容所描述……

动态规划DP算法详解

动态规划DP算法详解1.简介动态规划(dynamicprogramming)是运筹学的一个分支,是求解决策过程(decisionprocess)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研……

C/C++如何加速输入输出效率(上)

C/C++如何加速输入输出效率(上)1.简介遇到大数据时,往往读写文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,有很多案例中提供几个数据,却在后台测评却提供了近千,近万的数……

最小生成树,克鲁斯卡尔(Kruskal)算法及C/C++代码实现

最小生成树,克鲁斯卡尔(Kruskal)算法及C/C++代码实现1.克鲁斯卡尔算法简介克鲁斯卡尔(Kruskal)算法是一种用来寻找最小生成树的算法(用来求加权连通图的最小生成树的算法)。在剩下的所有未选取的边中,找最小边,如果和已选取的边构成回路,则放弃,选取次……