数据结构实现时所需的成员变量、标准对外接口
来源:互联网 发布:淘宝长图是什么意思 编辑:程序博客网 时间:2024/05/14 00:28
1. vector
typedef int Rank;template <typename T>class Vector{protected: Rank _size; Rank _capacity; T* _elem; };
vector 的本质在于其底部维护的是一个一维数组(某种意义上说,vector 是对一维数组的 adapter 配接器)。在经典的数据结构中,对一维数组进行进一步拓展封装的还包括,binary heap(完全二叉树);一般而言,只要对一维数组进行封装的场合,都会提供另外的两个成员属性,
typedef struct HeapStruct { int Capacity; // 当前所放体积 int Size; // 容量 ElementType* Elements;}* PriorityQueue;
有了 Capacity 以及 Size 这两个成员变量,便可轻易地实现另外两个公共接口,判断容器是否为空或是否为满。
- insert:⇒ 是否为满;
- delete:⇒ 是否为空;
2. stack
stack@vector
#include "../Vector/Vector.h" template <typename T> class Stack: public Vector<T> { public: //size()、empty()以及其它开放接口,均可直接沿用 void push(T const& e) { insert(size(), e); } T pop() { return remove(size() - 1); } T& top() { return (*this)[size() - 1]; } };
3. 二叉搜索树
查找(search)、插入()、删除;
template <typename T>class BST :public BinTree<T> {public: virtual BinNodePosi(T)& search(const T& e); virtual BinNodePosi(T) insert(const T& e); virtual bool remove(const T& e); // 一般常用作其它特定二叉搜索树的基类, // 需要修改相关(search、insert、remove)接口};
4. AVL 树
AVL 树是平衡因子受限的二叉搜索树,对于二叉搜索树的三个核心成员函数,search、insert、remove 函数,仅需要修改其中的 insert 和 remove 函数。
#include "../BST/BST.h"template <typename T>class AVL :public BST<T> {public: BinNode<T>* insert(const T& e); bool remove(const T& e);}
0 0
- 数据结构实现时所需的成员变量、标准对外接口
- 基于Spring AOP实现对外接口的耗时监控
- 基于Spring AOP实现对外接口的耗时监控
- 基于Spring AOP实现对外接口的耗时监控
- 基于Spring AOP实现对外接口的耗时监控
- dll的对外函数接口
- 对外接口暴露的问题
- 提供对外接口时,要注意的地方
- 接口成员的显示实现
- java集合框架集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。
- Zend_XmlRpc 使用实例(轻松实现对外接口)
- objective-c 成员变量没初始化所造成的灾难
- 所见过的类成员变量命名方式
- 子类继承父类的同时又去实现一个成员变量、方法与父类相同的接口,最后调的是谁的成员变量和方法?
- WebService使用对外免费接口的问题
- 【Java】abstract class : 对外统一接口+公共方法+必须实现的方法
- OpenCV的IplImage数据结构的各成员变量的含义
- OpenCV的IplImage数据结构的各成员变量的含义
- AM335X的资源链接
- 如何自己编写Makefile(简单介绍)
- Leetcode #169 Majority Element
- python os.path模块学习
- c3p0数据库连接池
- 数据结构实现时所需的成员变量、标准对外接口
- 静态成员函数调用非静态成员变量
- android开发规范文档
- python numpy库中的n-array
- 译码
- SDWebImage内部实现过程
- 一些常见的web小功能
- C# 多线程(一)
- [CODEVS3243]区间翻转(线段树||splay||块链)