数据结构

程序运行时的内存与地址

程序运行时的内存与地址1.理解内存在开始数据结构的正式代码编写之前,我们得先熟悉一个计算机中重要的概念——内存,当然这里不是教你如何选购内存条,这里是介绍数据结构学习中必须要掌握的关于内存的基本概念……

C++STL之multiset与multimap容器

C++STL之multiset与multimap容器1.MultisetMultiset是set集合容器的一种,其拥有set的全部内容,在此基础之上,multiset还具备了可以重复保存元素的功能,因此会有略微和set的差别。Multise容器在执行i……

什么是跳表?

什么是跳表?跳表是一种数据结构。它使得包含n个元素的有序序列的查找和插入操作的平均时间复杂度都是O(logn),优于数组的O(n)复杂度。快速的查询效果是通过维护一个多层次的链表实现的,且与前一层(下面一层)链表……

最短路径,弗洛伊德(Floyd)算法及C/C++代码实现

最短路径,弗洛伊德(Floyd)算法及C/C++代码实现1.算法简介弗洛伊德算法与迪杰斯特拉算法是公认的最著名的两种最短路径求解算法,接下来介绍弗洛伊德算法,弗洛伊德算法的思路是:首先初始化距离矩阵,然后从第一个点开始逐渐更新矩阵点值。d[i][j]表示从……

C++字符串常用操作(一)

C++字符串常用操作(一)1.基本介绍在程序设计中,字符串操作是必不可缺的,无论是工程设计还是算法设计均离不开字符串,字符串是由一个个单独的字符构成的串,其数据结构是线性的,常以ASCII码表示,同时只要设定得当,其展示任何一……

栈的基本操作及C语言代码实现

栈的基本操作及C语言代码实现1.栈的基本操作—出栈如图:出栈(pop)操作,是在栈不为空的情况下(注意一定要进行判空操作),将栈顶的元素删除,同时top指针,next向下进行移动即可的操作。其代码可以表示为://出栈……

快速排序算法实例详解

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

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

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

C++STL之Queue容器

C++STL之Queue容器1.再谈队列回顾一下之前所学的队列,队列和栈不同,队列是一种先进先出的数据结构,STL的队列内容极其重要,虽然内容较少但是请务必掌握,STL的队列是快速构建搜索算法以及相关的数论图论的状态存储的基础。……

数学基础

数学基础在开始我们数据结构的教程之前,你需要具备以下数学基础知识,这些知识可能不会马上体现在计算机编程中,但是随着学习的深入,这些知识愈发愈用的平凡,于其遇到了再的碎片化,不如我们单独开出一节来单独学习这些数……