栈数组与栈链表C语言代码实现 栈数组代码实现:#include<stdio.h>#include<stdlib.h>#include<string.h>#definemaxn10000//结点设计typedefstructstack{intdata[maxn];inttop;}stack;//创建stack*init(){stac 栈 2022年02月06日 90 点赞 0 评论 118920 浏览
手指树的基本结构 一、简介手指树(FingerTree)是一种纯函数式数据结构,由RalfHinze和RossPaterson提出。二、为什么需要手指树?在函数式编程中,列表是十分常见的数据类型。对于基于序列的操作,包括在两端添加和删除元素(双端队列操作),在任意节点插入、连接、删除, 数据结构 2022年05月22日 142 点赞 0 评论 66504 浏览
分块查找算法介绍与实现 1.算法简介分块查找是折半查找和顺序查找的一种改进方法,分块查找由于只要求索引表是有序的,对块内节点没有排序要求,因此特别适合于节点动态变化的情况,其核心有二索引表,二是分块处理。分块查找要求把一个大的线性表分解成若干块,每块中的节点可以任意存放,但块与块之间必须排序。 查找算法 2022年05月12日 207 点赞 0 评论 127385 浏览
C++中string字符串类型介绍 1.简介C语言中通过字符相连已经基本创造出了字符串的常规操作,然而,字符串在C语言中并不是常规类型,而是一个类似于数组的结构,在C++中,通过模板类的操作创建了string类,这样的方法更适合于现代的操作编程。2.头文件&命名空间#include<string>//头文件注意不是<string.h>也 串、数组、矩阵和广义表 2022年03月19日 228 点赞 0 评论 112323 浏览
理解复杂度概念 1.时间空间复杂度定义1)时间复杂度时间复杂度表示一个程序运行所需要的时间,其具体需要在机器环境中才能得到具体的值,但我们一般并不需要得到详细的值,只是需要比较快慢的区别即可,为此,我们需要引入时间频度(语句频度)的概念。时间频度中,n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。 数据结构入门 2022年05月31日 304 点赞 0 评论 117870 浏览
图的存储:链式向前星 1.概念链式向前星代码是基于向前星代码的优化,这是极大多数算法竞赛以及高效率图论算法喜欢适用的创建方法,与邻接表和邻接矩阵比较容易的理解方式,向前星算法并不容易理解。在理解链式向前星之前我们需要了解什么是向前星,前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序, 图 2022年01月11日 55 点赞 0 评论 96125 浏览
set theory(集合论) 1.集合论简介集合论,是数学的一个基本的分支学科,研究对象是一般集合。集合论在数学中占有一个独特的地位,它的基本概念已渗透到数学的所有领域。集合论或集论是研究集合(由一堆抽象物件构成的整体)的数学理论,包含了集合、元素和成员关系等最基本的数学概念。 C++STL库教程(附带题库) 2022年02月19日 254 点赞 0 评论 88404 浏览
什么是链表? 通过研究证明,怎么学好数据结构?怎么入门?需要学些什么东西?链表是数据结构的重要部分,学好用好链表,在解题的过程中,思路将更加清晰,链表作为数据结果的基础之一,本篇将会通过图文和代码展示的形式系统的介绍。什么是链表?链表是一种物理存储单元上非连续、非顺序的存储结构, 数据结构 2022年01月02日 90 点赞 0 评论 104805 浏览
C++STL之Vector容器 1.概念Vector可以翻译为向量,或向量数组,至于为什么以向量命名,可以理解为一维空间也是存在向量的。Vector是最简单的序列是容器,就像数组一样,向量使用连续的存储位置作为元素,这意味着它们的元素也可以使用常量指向其元素的偏移来访问,与数组一样有效。 C++STL库教程(附带题库) 2022年04月11日 297 点赞 0 评论 123865 浏览
树形模拟法的运用(C语言例题讲解) 1.模拟法简介在前面的文章已经提到过模拟这个思维,模拟的思维无处不在,就树形的DFS算法而言,我们更多的情况并非建立一棵树,这对我们书写和易用性而言太差了,我们通常会适用多个数组进行模拟,树也是可以利用数组进行模拟的。如下图:上面一排表示数组下标, 树 2022年01月10日 205 点赞 0 评论 109304 浏览