数据结构

理解复杂度概念

理解复杂度概念1.时间空间复杂度定义1)时间复杂度时间复杂度表示一个程序运行所需要的时间,其具体需要在机器环境中才能得到具体的值,但我们一般并不需要得到详细的值,只是需要比较快慢的区别即可,为此,我们需要引入时间频……

C++STL之Priority_queue(优先队列)

C++STL之Priority_queue(优先队列)1.简介优先队列是一种极其特殊的队列,他与标准的队列使用线性结构进行计算不同,优先队列的底层是以散列的状态(非线性)表现的,他与标准的队列有如下的区别,标准的队列遵从严格的先进先出,优先队列并不遵从标……

希尔排序算法实例详解

希尔排序算法实例详解1.复杂度与稳定性算法时间复杂度最坏情况:O(n^2)最好情况:O(n)平均情况:O(n^2) 稳定性:不稳定排序2.过程介绍希尔排序,又名递减增量排序算法,是一种非稳定的更高效的插……

栈的定义和特点

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

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

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

C++中string字符串类型介绍

C++中string字符串类型介绍1.简介C语言中通过字符相连已经基本创造出了字符串的常规操作,然而,字符串在C语言中并不是常规类型,而是一个类似于数组的结构,在C++中,通过模板类的操作创建了string类,这样的方法更适合于现代的……

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

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

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

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

后记

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