数据结构
Rice__
走走停停
展开
-
C++类模板实现二叉搜索树(BST)与三种遍历
实现了基本的插入与查找(递归与迭代)功能实现二叉树的三种遍历方式(迭代实现)头文件如下#pragma once#include<stack>#include<queue>template<class T> class BinarySearchTree;//树结点template<class T>class TreeNode{public: TreeNode(const T& d) :data(d), left(0),.原创 2020-06-13 22:49:29 · 555 阅读 · 0 评论 -
C++类模板实现链表与简单迭代器
实现了链表简单的几个功能迭代器并不实用,写着玩(未重载操作符)头文件如下#pragma oncetemplate<class T> class MyList;template<class T> class ListIterator;//链表结点template<class T>class Node{public: Node(T item) : date(item) {}; friend class MyList<T>; f.原创 2020-06-13 22:38:14 · 282 阅读 · 0 评论 -
C++类模板实现大根堆
大根堆是一种树形的结构,所有父结点都大于子结点,一般用一维数组表示,若父结点下标为n (开始下标从0开始),则左孩子下标为 2n+1.右孩子为2n+2堆数据使用STL向量vector保存容量vector自动扩充头文件如下#pragma once#include<vector>template <class T>class MaxHeap{public: MaxHeap(size_t capacity = 1原创 2020-06-13 22:26:58 · 372 阅读 · 0 评论 -
C++类模板实现队列(动态数组实现)
使用动态数组保存数据队列满自动扩充容量头文件如下#pragma oncetemplate <class T>class MyQueue{public: MyQueue(size_t n = 10); ~MyQueue(); void Push(const T&); void Pop(); T& Front() const; T& Rear() const; bool IsEmpty() const; size_t Size() c.原创 2020-06-13 22:11:43 · 634 阅读 · 0 评论 -
C++类模板实现队列(链表实现)
使用链表保存数据头文件如下#pragma oncetemplate <class T>class LinkQueue{public: LinkQueue(); ~LinkQueue(); bool IsEmpty(); size_t Size(); void Push(const T&); void Pop(); void Clear(); T& Front() const;private: struct LinkNode { .原创 2020-06-13 22:00:05 · 316 阅读 · 0 评论 -
C++类模板实现栈(链表实现)
使用链表保存数据头文件如下#pragma oncetemplate <class T> class LinkStack;//保存数据结点template <class T>class LinkNode{public: LinkNode(const T& d = T(), LinkNode* n = nullptr); friend class LinkStack<T>;private: T data; LinkNode* ne.原创 2020-06-13 21:55:18 · 589 阅读 · 0 评论 -
C++类模板实现栈(动态数组实现)
使用动态数组保存数据栈满自动扩充数组容量头文件如下#pragma oncetemplate <class T>class MyStack{public: MyStack(size_t n = 10); ~MyStack(); void Push(const T&); void Pop(); T& Top() const; bool IsEmpty() const; size_t Size() const;private: size_t.原创 2020-06-13 21:50:15 · 758 阅读 · 0 评论 -
C++最小优先队列实现dijkstra算法
算法思想算法伪代码测试用例过程代码实现#include <iostream>#include <cstdio>#include <vector>#include <queue>#include <iomanip>using namespace std;#define max 110 //最大顶点个数#define INF 0xfffff //权值上限int n; //顶点数str.原创 2020-06-07 10:25:41 · 2151 阅读 · 0 评论 -
C++实现dijkstra与floyd算法
dijkstra是求一个顶点到其他所有顶点的最小距离,类似普里姆算法floyd是把所有结点之间的最小距离求出本程序使用接邻矩阵保存图,测试用例如下图:#pragma once#include <iostream>#include <iomanip>#include <map>using namespace std;template<class T>class MatriGraphx{public: MatriGraphx(s.原创 2020-06-06 23:35:55 · 328 阅读 · 0 评论 -
C++实现prim与kruskal算法
#pragma once#include <iostream>#include <iomanip>#include <map>using namespace std;template<class T>class MatriGraphx{public: MatriGraphx(size_t capacity = 20); ~MatriGraphx(); class Vertex//顶点 { public: Vertex(T v.原创 2020-06-06 13:36:26 · 391 阅读 · 0 评论 -
C++图的邻接表模板类与遍历算法
简单实现图的邻接表深度优先(DFS)与广度优先算法(BFS)遍历图头文件#pragma once#include <iostream>#include <list>#include <stack>#include <queue>using namespace std;template<class T>class AdjacencyGraph{public: AdjacencyGraph(size_t capaci.原创 2020-06-03 23:37:28 · 385 阅读 · 0 评论 -
C++图的邻接矩阵模板类
简单实现图的邻接矩阵,头文件如下#pragma once#include <iostream>using namespace std;template<class T>class MatriGraphx{public: MatriGraphx(size_t capacity = 20); ~MatriGraphx(); class Vertex//顶点 { public: Vertex(T v) { val = v; } friend cla.原创 2020-06-03 23:31:46 · 431 阅读 · 0 评论 -
C++类 接邻表实现图的BFS与DFS遍历
图:用list表示接邻表链BFS:容器与队列DFS:递归/涂色法用例51 2 11 3 11 5 12 3 12 4 13 5 14 5 10 0 0结果BFS遍历如下:访问结点 1(父结点:0,距离:0)访问结点 2(父结点:1,距离:1)访问结点 3(父结点:1,距离:1)访问结点 5(父结点:1,距离:1)访问结点 4(父结点:2,距离:2)DF...原创 2019-11-16 16:04:21 · 225 阅读 · 0 评论