C#数据结构和算法的定义

问题描述 投票:0回答:4

这可能是一个愚蠢的问题(对于 MSDN 等),但也许你们中的一些人能够帮助我筛选数量惊人的信息。

我需要了解常用数据结构和算法在C#中的实现细节。也就是说,例如,我需要知道如何处理和表示链接列表,如何定义它们及其方法。

是否有一个良好的集中文档来源(带有代码),或者我应该重建它?您是否曾经需要了解这些东西的具体细节才能决定使用什么?

问候,谢谢。

c# algorithm data-structures
4个回答
8
投票

Scott Mitchell 有一篇很棒的由 6 部分组成的文章,涵盖了许多 .NET 数据结构:

数据结构的广泛检查

对于数据结构的算法概述,我建议阅读 the 算法教科书:Cormen 等人的“算法简介”..

有关每个 .NET 数据结构的详细信息,有关该特定类的 MSDN 页面很好。

当他们都无法解决问题时,Reflector始终存在。您可以使用它来挖掘实际来源并亲自查看内容。


1
投票

如果你真的想学习,请尝试自己制作。

谷歌搜索链接列表会给你带来很多点击和示例代码。 维基百科也将是一个很好的资源。


0
投票

如果您正在寻找有关 C# 中数据结构和算法实现的详细信息,最好的起点是 Microsoft 官方文档。它为 List、LinkedList、Dictionary 等内置数据结构提供了详细的解释、示例和代码。

要获得更深入的见解,包括如何定义方法和性能注意事项,您可以在 .NET 运行时存储库中探索 GitHub 上提供的源代码。这可以帮助您了解内部结构并就使用哪些结构做出明智的决定。

从头开始重建是可能的,但很耗时——利用现有文档和源代码通常更有效。


-1
投票
取决于语言。 大多数语言现在都预先构建了非常基础的知识,但这并不意味着它们的实现是相同的。 同一个命名对象——C# 中的 LinkedList 与 Java 或 C++ 中的 LinkedList 完全不同。 甚至 String 库也是不同的。 例如,众所周知,每次为字符串分配一个新值时,C# 都会创建一个新的 String 对象...当您第一次在 C# 中使用子字符串时,它会使您的程序崩溃,这将成为您快速学习的东西时间。

所以你的问题的答案非常复杂,因为我不太清楚你在追求什么。 如果您只是要向班级讲授这些算法和数据结构的通用版本是什么,您可以在不涉及我上面提到的问题的情况下展示它们。 您只需要选择、查找、阅读它们的特定类型的实现即可。 与 LinkedList 一样,您需要能够实例化列表、销毁列表、复制列表、添加到列表中的某个位置(通常是前面/后面)、从列表中删除等。您可以添加尽可能多的方法你想要。

© www.soinside.com 2019 - 2024. All rights reserved.