剑指Offer
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 数据结构

本题考点:

● 考查对单例(Singleton)模式的理解。

● 考查对C#的基础语法的理解,如静态构造函数等。

● 考查对多线程编程的理解。

本题扩展:

在前面的代码中,5种单例模式的实现把类型标记为sealed,表示它们不能作为其他类型的基类。现在我们要求定义一个表示总统的类型President,可以从该类型继承出FrenchPresident和AmericanPresident等类型。这些派生类型都只能产生一个实例。请问该如何设计实现这些类型?

数据结构一直是技术面试的重点,大多数面试题都是围绕着数组、字符串、链表、树、栈及队列这几种常见的数据结构展开的,因此每一个应聘者都要熟练掌握这几种数据结构。

数组和字符串是两种最基本的数据结构,它们用连续内存分别存储数字和字符。链表和树是面试中出现频率最高的数据结构。由于操作链表和树需要操作大量的指针,应聘者在解决相关问题的时候一定要留意代码的鲁棒性,否则容易出现程序崩溃的问题。栈是一个与递归紧密相关的数据结构,同样队列也与广度优先遍历算法紧密相关。深刻理解这两种数据结构能帮助我们解决很多算法问题。