数据结构实现时所需的成员变量、标准对外接口
2016-09-18 18:32
357 查看
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); }
相关文章推荐
- 实现Comparable接口对树形结构数据进行排序
- 结构体成员偏移量,标准C其实有定义宏实现
- 【数据结构与算法学习笔记】PART2 向量(接口与实现,可扩充向量,无序向量,有序向量)
- 通过友元函数实现两个不同类中私有成员变量的数据交换
- 使用结构中的成员变量在oc 中进行数据传递
- (一)获取类的三种方式,根据类获取成员变量,成员方法,直接实现的接口,自己的构造方法,直接的父类
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--PHP的哈希实现
- 数据结构:(更新中)成员变量、成员函数和实例一般命名和定义方法
- 策略设计模式:父类持有接口成员变量,动态设定接口成员实现类,动态改变方法
- 实现Comparable接口对树形结构数据进行排序
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--类型提示的实现
- IFC标准是为了满足建筑行业的信息交互与共享而产生的统一数据标准,是建 筑行业事实上的数据交换与共享标准。本文概要介绍了IFC标准的产生及发展 历程,IFC的整体框架结构,简要说明了IFC标准的实现方法和过程,描述了 当前的应用以及我们应该更加积极地利用IFC标准为建筑软件行业服务。
- C++数据结构用一个变量或一个临时栈实现栈的复制
- java集合框架集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。
- 子类继承父类的同时又去实现一个成员变量、方法与父类相同的接口,最后调的是谁的成员变量和方法?
- 利用抽象工厂实现自定义多数据类型接口
- castor + xml schema 实现webservice中复杂结构数据传输
- castor + xml schema 实现webservice中复杂结构数据传输
- castor + xml schema 实现webservice中复杂结构数据传输
- 结构成员变量偏移量的两个应用