数据结构

C++的区别

C++的区别1.从C语言到C++1980年,BjarneStroustrup博士着手创建一种新的语言,能够具有面向对象的程序设计特色。在当时,面向对象编程是一个新颖的概念,Stroustrup博士并不是从头开始设……

快速排序算法实例详解

快速排序算法实例详解1.复杂度与稳定性算法时间复杂度最坏情况:O(n^2)最好情况:O(nlogn)平均情况:O(nlogn) 稳定性:不稳定排序2.过程介绍快速排序是考察次数最多的排序,无论是在大学专……

二叉树的存储(C语言实现)

二叉树的存储(C语言实现)二叉树存储1.简介根据前文的介绍,我们知道了二叉树的性值,其就是一种每一个结点中只允许拥有左右孩子(或为空)的树,这种数据结构在我们的实际设计中非常常用,如前文提到的STL中的set集合,其底层就是一……

时间复杂度的度量方法

时间复杂度的度量方法接上文,在理解了时间复杂度的概念后,就可以根据实际的代码进行度量了,以下举例了几个常用的时间复杂度的表示,对于如何度量其最重要的是观察程序中的循环结构,每一个循环结构代表执行循环中的指令n次,而其余指……

栈的定义和特点

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

图的遍历DFS深搜优先搜索及C语言代码实现

图的遍历DFS深搜优先搜索及C语言代码实现1.图的遍历在理解DFS算法之前,我们首先需要对什么是遍历进行了解,遍历的概念就是:从某一个点出发(一般是首或尾),依次将数据结构中的每一个数据访问且只访问一遍。2.DFS简介DFS(Depth-Fi……

C/C++如何设计函数多返回值?

C/C++如何设计函数多返回值?有那么一种情况,函数本身需要返回多个值,如在地图参数中需要返回二维坐标(x,y),或者是系统设计中需要返回一个学生多门课程的成绩。这里提供了一些做法和思路。1.全局变量,为什么不用它?如,这样的方法,……

冒泡排序算法实例详解

冒泡排序算法实例详解1.复杂度与稳定性算法时间复杂度最坏情况:O(n^2)最好情况:O(n)平均情况:O(n^2)空间复杂度:S(n)=O(1)稳定性:稳定排序2.过程介绍(以顺序为例)1.从第一个元素开始逐个比较相邻的……

后记

后记自6月提笔写这个教程,到现在已是年末了,时光如梭,读者跟着连载应该再配合一些基本的习题和搜索应该已经基本掌握数据结构了,然而,学完这些基本的数据结构还只是计算机学习海洋的一个开始,正如我开篇所说,数据……

二叉树(树)与森林的相互转换

二叉树(树)与森林的相互转换1.什么是森林森林,顾名思义,就是由众多的树构成的一组数据结构,这些树本身没有什么联系,用系统的语言描述就是:森林:m(>=0)棵互不相交的树的集合【注意这里森林是可以有0颗树的,同数学……