
数据结构
文章平均质量分 60
Tom Li
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用迭代器实现双向队列deque
一、deque概述Deque是一种双向开口的连续线性空间,可以在头尾两端分别做元素的插入和删除操作,其示意图如下所示:Deque由一段一段的定量连续空间构成,一旦有必要在deque的前端或尾端增加新空间,便配置一段定量连续空间,串接在整个deque的头端或尾端。Deque的最大任务,便是在这些分段的定量连续空间上,维护其整体连续的“假象”,并提供随机存取的接口。避开了“重新配置、复制、释放”的轮回,代价则是复杂的迭代器架构。Deque采用一块map作为主控,这块map是一小块连续空间,其中每个节点(原创 2021-07-18 18:42:01 · 485 阅读 · 1 评论 -
使用迭代器实现双向队列deque----完整源代码
双向队列头文件Deq1.h#include<iostream>#include<stdlib.h>#include<stddef.h>#include<math.h>#include<algorithm>using namespace std;#ifdef __STL_USE_EXCEPTIONS#define __STL_TRY try#define __STL_UNWIND(action) catch(...) { a原创 2021-07-18 18:39:42 · 317 阅读 · 0 评论 -
Dijkstra算法最短路径----按路径长度递增的次序产生最短路径
一、最短路径最短路径问题(Shortest Path)是指从在带权图的某一顶点(称为源点)出发,找到一条通往另一顶点(称为终点)的最短路径。二、Dijkstra算法- 基本思想(1)把图中的所有顶点分为两组,一组为已确定最短路径的顶点;一组为尚未确定最短路径的顶点。(2)按路径长度递增的顺序逐个把第二组的长度加到第一组中去,直到源点出发到达的所有顶点中全部包含至第一组。具体做法(1...原创 2020-04-14 21:15:46 · 3744 阅读 · 0 评论 -
使用开散列实现对字典的查找插入删除(C++实现)
一、需求分析【问题描述】实现对字典的查找。【基本要求】在分块查找、AVL树、哈希查找、B树或者B+树查找中选择一种你认为最高效的动态查找方法对字典(单词、词性加释义)在内存中的动态查找结构或者在外存的字典文件的构造、查找、插入、删除。【逻辑操作】1、利用字典文件构造字典2、实现对字典的快速查找3、在字典中任意插入之前不存在的单词4、任意删除字典中已有的单词【输入输出要求】1.字...原创 2020-04-06 23:12:19 · 1101 阅读 · 0 评论 -
数据结构之图(2):图的遍历,深度优先算法(DFS)和广度优先算法(BFS)
一、什么是图的遍历给定一个图G和其中任意一个顶点v0,从v0出发,沿着图中的各边访问图中的所有顶点,且每个顶点仅被访问一次。遍历的方法:深度优先搜索、广度优先算法、前序、后序为了防止陷入死循环(存在回路)或者访问不到某些结点(非联通图),我们在每个顶点设置一个访问标志位(visit bit)初始为零,被访问后标记。图的生成树:图的所有顶点再加上遍历过程中经过的所有边所构成的子图,称为...原创 2020-04-05 22:47:06 · 462 阅读 · 0 评论 -
数据结构之树(1):树的基本定义、术语以及树的抽象数据类型
一、树的定义树(有根树)是n(n>=0)个结点的有序集合T。当n等于0时,T为空树;当n>0时,T是非空树,并且可表示为T={r,T1,T2……Tn};其中r是根结点(root).e.g. 如图所示,(a)是空树,连一个结点都没有;(b)是只有根结点的树;(c)是有13个结点的树,A是根结点,其余结点又分成3个互不相交的子集:T1={B,E,F,K,L},T2={C,G}...原创 2020-03-06 09:10:33 · 1317 阅读 · 0 评论