Advertisement

C++数据结构实现。

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
该数据集对应于清华大学MOOC课堂上所提供的,邓俊辉老师所编写的配套教材的第三版。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • C++版的
    优质
    本项目为C++语言编写的数据结构实现库,涵盖了链表、栈、队列、树等经典数据结构,并提供了丰富的操作接口和高效的算法优化。 内含资源如下: 1. 基本数据结构 1.1 Array:动态数组 1.2 LinkedList:链表 1.3 BST:二分搜索树 1.4 MapBST:用于实现映射的二分搜索树 1.5 AVLTree:AVL树 2. 接口 2.1 Queue:队列接口 2.2 Stack:栈接口 2.3 Set:集合接口 2.4 Map:映射接口 2.5 Merger:自定义函数接口 2.6 UnionFind:并查集接口 3. 高级数据结构 3.1 ArrayQueue:基于动态数组实现的队列 3.2 LinkedListQueue:基于链表实现的队列 3.3 LoopQueue:基于动态数组实现的循环队列 3.4 PriorityQueue:基于最大二叉堆实现的优先队列 3.5 ArrayPriorityQueue:基于动态数组实现的优先队列 3.6 LinkedListPriorityQueue:基于链表实现的优先队列 3.7 ArrayStack:基于动态数组实现的栈 3.8 LinkedListStack:基于链表实现的栈 3.9 BSTSet:基于二分搜索树实现的集合 3.10 LinkedListSet:基于链表实现的集合 3.11 BSTMap:基于二分搜索树实现的映射 3.12 AVLTreeMap:基于AVL树实现的映射 3.13 LinkedListMap:基于链表实现的映射 3.14 MaxHeap:最大二叉堆 3.15 SegmentTree:线段树 3.16 Trie:字典树 3.17 QuickFind:基于数组实现的并查集 3.18 QuickUnion:基于树思想实现的并查集
  • C语言
    优质
    《C语言实现的数据结构》一书深入浅出地讲解了数据结构的基本概念与算法,并通过C语言进行实现和应用示例,适合编程初学者及进阶读者学习参考。 数据结构 ```c /* 校园共有7个结点 */ #include #include #define MAXSIZE 50 #define MAXINT 32700 /* 尝试使用32767,但在算法中加法操作可能会导致溢出错误 */ typedef int datatype; typedef struct { datatype vexs[MAXSIZE]; int edges[MAXSIZE][MAXSIZE]; int n, e; } Graph; void CreateGraph(Graph *graph) { /* 根据图的结构手工建立邻接矩阵,然后写入程序 */ int i, j; graph->n = 7; graph->e = 10;/* 数组下标从1开始使用,以确保顶点表示的一致性 */ for (i = 1; i <= graph->n; ++i) { graph->vexs[i] = i; } /* 初始化边的权重 */ for(i=1;i<=graph->n;i++) for(j=1;j<=graph->n;j++) { if (i == j) graph->edges[i][j]=0; /* 自环设为零 */ else graph->edges[i][j] = MAXINT;/* 缺省值设置为无穷大,表示无边连接 */ } /* 手动设定具体权重值 */ graph->edges[1][2] = 20; graph->edges[1][3] = 10; graph->edges[1][4] = 30; graph->edges[2][7]=9; graph->edges[3][5]=5; graph->edges[5][4]=12; graph->edges[5][7]=15; graph->edges[6][5]=8; graph->edges[6][7] = 10; graph->edges[7][3] = 18; } void PrintGraph(Graph * graph) { int i, j; printf( ); for (j=1;j<=graph->n;++j) printf(%6d ,j); /* 确保输出的格式固定 */ printf(\n); /* 打印邻接矩阵,每行代表一个顶点和所有其他顶点之间的权重关系 */ for(i = 1; i <= graph->n; ++i) { printf(%d ,i); for(j=1;j<=graph->n;++j) printf(%6d ,graph->edges[i][j]); printf(\n); } ``` 这段代码定义了一个图的数据结构,并通过手工设定的方式创建了校园内7个结点之间的连接关系,最后打印出该图的邻接矩阵。
  • C++中图的
    优质
    本文探讨了在C++编程语言中实现图数据结构的方法和技巧,包括常用算法的应用。通过具体实例解析图的各种表示方式及其操作。 ```cpp #include #include Bgraph.h // 引入头文件 using namespace std; /* * 前置条件:图不存在 * 输入:无 * 功能:图的初始化 * 输出:无 * 后置条件:得到一个有向图 */ template BGraph::BGraph(T a[], int n, int e) { int i,j,k,w; ArcNode *E; vertexNum=n; arcNum=e; for(i=0;i>i>>j>>w; // 先插入边 E=new ArcNode; E->info=w; E->adjvex=j; E->nextarc=adjlist[i].firstarc; adjlist[i].firstarc=E; // 再插入边 E=new ArcNode; E->info=w; E->adjvex=i; E->nextarc=adjlist[j].firstarc; adjlist[j].firstarc=E; } } ```
  • C++中树的
    优质
    本文将介绍在C++编程语言中如何实现和操作树这一重要的数据结构。从基本概念到具体代码实现,全面解析树的创建、遍历及优化技巧。适合初学者入门学习。 C++数据结构中的树是一个头文件的一部分。后面还有一些功能函数。
  • C++与算法.rar
    优质
    本资源包含了使用C++编程语言实现的各种经典数据结构和算法的代码示例。适合希望深入学习或复习相关知识的计算机科学学生及开发者。 数据结构与算法(C++实现)
  • C++中等价类的
    优质
    本文探讨了在C++编程语言环境下,如何有效地设计和实现数据结构中的等价类概念。通过深入分析与实例演示相结合的方式,文章详细讲解了等价关系理论及其应用,并提供了优化建议以提高程序性能及代码可读性。适合希望提升自身算法理解和实践能力的读者参考学习。 C语言数据结构实验课上的一个作业是实现等价类。这个任务原本用C++编写,现在需要将其转换为使用C语言的数据结构来完成。
  • C++中顺序栈的
    优质
    本篇文章介绍了如何在C++中实现顺序栈的数据结构,包括栈的基本操作如入栈和出栈等,并提供了代码示例。 本程序通过C++实现数据结构中的顺序栈,主要功能包括压栈、弹栈、遍历以及栈空间拓展等。具体的函数如下: - MStack(int tCapacity, bool& flag); - ~MStack(); - void Clear(); - bool Empty() const; - bool Push(ElemType&); - bool Pop(ElemType&); - bool GetTopElem(ElemType&) const; - bool traverse(void(*visit)(const ElemType&)) const; - int GetCapacity() const; 此外,声明了友元函数: template friend bool StackExpansion(MStack& CurStack, int newCapacity);
  • C语言版》代码
    优质
    《C语言版数据结构》一书通过详细的C语言代码展示数据结构的设计与实现,涵盖链表、栈、队列、树等经典内容,适合编程学习者深入理解算法和数据结构。 严蔚敏《数据结构(C语言版)》的全部算法实现代码使用C语言编写,并且每个单元分别存放在不同的文件夹里。
  • C++代码迷宫
    优质
    本项目使用C++语言实现了基于数据结构原理的迷宫问题解决方案,包括迷宫的创建、路径搜索及显示等功能。 设计一个程序来解决迷宫问题:用m×n的长方阵表示迷宫,其中0代表通路而1代表障碍物。该程序需要能够针对任意设定的迷宫找到从入口到出口的一条路径,或者确定没有可行路径存在。
  • 链栈的(C语言)
    优质
    本项目使用C语言实现了链栈的数据结构,包含初始化、入栈、出栈和获取栈顶元素等操作,适用于数据结构学习与实践。 数据结构中的链栈可以用C语言实现。这种实现方式通常涉及使用指针来管理动态内存分配,并通过操作节点的链接来完成入栈和出栈的操作。在设计链栈的过程中,需要考虑如何有效地处理内存资源以及确保数据的安全性和完整性。此外,在编写代码时还需要注意边界条件及异常情况的处理,以保证程序能够稳定运行并具备良好的性能表现。