示例问题以提高数据结构的知识

时间:2010-08-07 19:52:11

标签: .net data-structures

我见过大多数网络程序员(用sql编写一些脚本来制作CRUD应用程序)不知道如何在相对复杂的情况下构建业务逻辑,比如使用Stack,Queue或写递归算法。这些程序员习惯于在谷歌上搜索代码并粘贴它,但不明白哪个数据结构做什么以及何时使用什么。

我正在尝试召开会议来培训网络程序员,以改善他们对数据结构的了解,例如:我给出了一个示例程序来计算给定文本中单词的重复,一个应该使用Dictionary / Hashtable,但即使在引导它们使用Dictionary之后,它们仍然无法做到。

我需要样本问题定义(当然我可以找出答案,但我不希望任何人在这里给出代码,只有问题定义),应该培训他们使用Stack,Queue,List,Dictionary等。

如果我给他们像解析和表达这样的东西,他们会心脏病发作,所以我需要简单的算法开始,就像计算给定文本中的重复一样简单。

请假设只有.NET 2.0,所以泛型很好,但没有Linq等。

1 个答案:

答案 0 :(得分:1)

以下是一些。

1)

给定一个只包含'('和')'的字符串,给出一个算法来检查它是否是一个包好的括号表达式(即括号是否正确匹配)。

示例:“(())()()”括号内,但“())(”不是。

2)

将数字表示为数字的链接列表。给出算法以找到这些列表的总和和乘积。 (这种表示实际上可以用来表示大整数)。

3)

用户首先输入一堆不同的数字。输出收到的号码总数,然后按照收到的顺序输入数字本身。如果额外信用,如果用户多次输入相同的数字,则标记错误。

4)

用户输入一堆数字,可能是重复的。输出收到的不同号码的数量,并按照收到它们的相反顺序。

因此,如果用户输入11 22 22 11 10,则输出3,然后输出10 22 11。