根据提供的文件信息,可以提取以下知识点:

  1. 抽象数据类型(ADT):抽象数据类型是编程中的一种概念,指一个数学模型以及定义在该模型上的一组操作的集合。ADT允许程序员隐藏数据的实现细节,通过一系列定义明确的公共接口访问数据。

  2. 面向对象编程(OOP):OOP是一种编程范式,使用“对象”设计软件。对象是类的实例,包含数据和操作数据的方法。其四个基本特性为封装、继承、多态和抽象。

  3. 实验报告结构:一般实验报告包括目标概述、实验环境配置、实验过程、问题解决、结果验证等部分。

  4. Git仓库准备:Git是一种版本控制软件,实验准备过程中需获取实验代码,并在Git上创建或准备一个仓库。

  5. 实验过程中的问题解决:报告中提到的几个问题涉及具体编程任务的实施,包括实现图数据结构及其相关类。

  6. 实现通用数据结构:实现泛型的数据结构是常见需求,例如创建一个泛型的Graph类以提高代码复用性和类型安全性。

  7. 实际应用场景:报告中的“PoeticWalks”可能是一个具体应用场景,涉及使用图形数据结构处理与诗歌相关的数据。

  8. 社交网络的实现:报告中提到的FriendshipGraph类和Person类用于表示社交网络中的友谊关系和用户。这些知识点涉及软件构造课程的多个重要方面,帮助学生加深对面向对象设计原则的理解,以及如何使用抽象数据类型和泛型编程构建灵活、可扩展的软件系统。