массив одного типа и связанный список другого типа - PullRequest
3 голосов
/ 04 сентября 2010

В интервью, когда я спрашиваю недавних аспирантов, в чем разница между массивом и связанным списком, первый ответ обычно звучит так: «В массиве у вас одинаковые типы данных, а в связанном списке вы можете иметь разные типы данных». Когда я скажу им объяснить, они скажут, что они только что где-то читали или что они точно не знают, как.
Я действительно не понимаю, откуда эта идея приходит в их мозг? Может ли кто-нибудь помочь мне понять, почему выпускник колледжа так думает? Или вы думаете, что это действительно разница?

Ответы [ 4 ]

3 голосов
/ 04 сентября 2010

Возможно, что этим учащимся были обучены массивы со статически типизированными языками и связанные списки с динамически типизированными языками, поэтому они пришли к тому, чтобы идентифицировать структуру данных с парадигмой языка, на котором они ее использовали.

Например, они могли использовать массивы в C и связанные списки в Scheme. Или каковы бы ни были модные названия для сегодняшних языков, которые по сути похожи на C, соответственно Scheme.

1 голос
/ 08 сентября 2010

Может быть, читал бы perl, где списки могут иметь любые типы данных ... но там perl и list несколько похожи. Также c имеет концепцию void *, так что мы можем сделать так, чтобы любой указатель типа данных был приведен к пустому указателю.

1 голос
/ 04 сентября 2010

Ну, я не могу говорить за них, но когда вы учитесь программировать, вы получаете некоторые задания.На одном вас попросят сохранить данные в массиве, а на другом вас попросят создать связанный список для сохранения данных.Когда вы это сделаете, вы узнаете, что оба помогают вам ... сохранять данные в памяти ... у каждого из них есть свои преимущества и недостатки.

То же самое, но их ограниченный опыт:

когда они учатся объявлять массив, это что-то вроде

int[] myArray = new int[20];

Таким образом, они учатся, что должны определить тип ...

и когда они строят узел

prev= object;
next = object;

они узнают, что они не привязаны к определенному типу или объекту.

Это мое лучшее предположение.Надеюсь, это поможет.

PS: Было бы интересно увидеть ответ таким, каким вы его дадите ... кто знает, некоторые из них могут увидеть его и чему-то научиться:)

0 голосов
/ 04 сентября 2010

Разве это не значит, что поиск в связанном списке прост, а в массиве сложен, то же самое касается и других выполняемых функций, например удаления и вставки. (При удалении вам нужно удалить сделанное вами отверстие и вставку, которую вы должны сделать отверстие, а затем переместить все элементы). Более того, я полагаю, что объяснение заданного вами вопроса было простым, поскольку массив может содержать один тип данных, например, имена или номера бросков, в то время как связанный список может содержать их обоих.

...