我被问到以下问题:你将如何存储下面给出的数据(你会选择哪种数据结构):
A-1-2-3-4-5-6
|
B-7-8-9-10-11
|
C-12-14-15-16-17我的答案:因为这看起来像是一堆链表,它们的头节点链接在一起。使用两个节点类型,其中一个id是具有以下定义的常规节点类型:
Struct node1
{
int val;
struct node*next;
};
// to store the numerical part of the data
struct node2
{
int val;
struct node *down;
struct node* next;
};
//this is the heads of each list.. for the alphabet part of the question.面试官的反应:这是你能想到的最好的数据结构吗?每个节点所需的遍历和内存情况如何?
我的答案是:如果我们创建某种哈希表,我们可以更好地遍历。
我向同志们提出的问题是:我们能做得更好吗?有没有更好的方法来存储这种类型的数据?
我们假设数据都是数字(甚至是每个头节点上的数字),并且是有可能重复的非串行数据。正确的答案是什么?在C/C++中寻找答案
发布于 2009-12-10 03:26:15
我要问的第一个问题是关于数据。It 似乎是一个简单的例子,说明在哪里打断一系列连续的数字。假设我只存储断点。这些类型的问题旨在测试您提出问题和深入了解潜在问题的能力。
发布于 2009-12-10 03:25:46
我认为这个问题的目的是让你对数据结构有一些想法。
如果每个节点只有一个字符和6个整数,那么就不需要存储两个列表。此外,如何使用它将是重要的考虑。也许一个字符和一个数字范围就足够了,这取决于数据到底是什么。
发布于 2009-12-10 03:30:01
在C#中,你可以使用字符串/整型数组的字典:
Dictionary<string,int[]> https://stackoverflow.com/questions/1876185
复制相似问题