数据库常见面试问题:数据结构面试问题(data structures interview question)

我被问到以下问题:您将如何存储下面给出的数据(您将选择哪个数据结构):

A-1-2-3-4-5-6
|
B-7-8-9-10-11
|
C-12-14-15-16-17

我的 ans:因为这看起来像一堆列表,其头节点链接在一起。使用两个节点类型一个 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 ++ 中寻找答案

7

我会问的第一个问题是关于数据的。它似乎是一个简单的例子,说明在哪里打破一系列连续的数字。鉴于我只存储断点。这些类型的问题旨在测试您提出问题和深入研究潜在问题的能力。

1

我认为这个问题的目的是让你对数据结构的想法。

如果每个节点实际上只有一个 char 和 6 个整数,则不需要存储两个列表。此外,如何使用它将是重要的考虑因素。

1

在 C # 中,您可以使用字符串 / int 数组的字典:

Dictionary<string,int[]> 
0

为了更好的遍历和内存使用,您可以考虑使用可变长度数组列表(Java ArrayLists)

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(376)
研究生复试数据库面试题:MATLAB面试题
上一篇
C75s是什么材料:当我们描述分组数据帧时 25% 50% 75%的值是什么
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(85条)