数据结构中的容器与栈详解
1. 容器概述
容器主要分为集合(Collections)和分配器(Dispensers)。集合包含列表(lists)、集合(sets)和映射(maps);分配器包含栈(stacks)和队列(queues)。容器的层次结构如下:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(Container):::process --> B(Dispenser):::process
A --> C(Collection):::process
分配器是线性有序的,并且有访问限制。接下来我们会详细探讨栈这种非可遍历的容器。
2. Ruby 中的接口
在面向对象编程中,接口是一组抽象操作的集合,不能被实例化。Ruby 虽然是面向对象语言,但没有接口。不过可以通过创建操作体为空的类来构建类似接口的类,即伪接口类。这些伪接口类可以作为实现该接口的类的超类。
伪接口类仍然可以被实例化,并且其操作可以在不被重写的情况下调用,所以它们只是有点像真正的接口。为了让它们更像接口,可以在伪接口中实现操作,使其在被调用时抛出异常,这样就迫使子类在使用之前重写这些操作。具体实现方法是创建超类,其操作抛出 NotImplementedError 异常,实现伪接口的类必须继承它并重写其操作。
3. 复习问题与答案
3.1 复习问题
- 集合是
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



