Когда бы вы использовали стек в отличие от обычного связанного списка или обычной очереди в отличие от приоритетной очереди в реальной жизни? - PullRequest
0 голосов
/ 25 ноября 2018

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

1 Ответ

0 голосов
/ 25 ноября 2018

Стеки, очереди, приоритетные очереди являются очень универсальными структурами данных.

Вы можете найти их применение в конкурентном программировании, процессорах, операционных системах и многих других местах, которые я еще не исследовал.

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

Этот ответ объясняет использование стеков в микропроцессоре.Процессор также использует приоритетные очереди для определения приоритетности задач, таких как обработка прерываний.Серьезным прерываниям присваивается высокий приоритет, а слабым прерываниям - меньший приоритет.

Другое использование стека - запись обратной трассировки для программного обеспечения, которое только что получило исключение (обычно во время выполнения).Ссылка на Python прилагается здесь .

По моему мнению, эти структуры данных не требуют особой практики.Вам просто нужно знать суть этого.Вы должны знать, что такое использование стека (Last In First Out), очередей и т. Д. Однако очереди с приоритетами немного более сложны (в реализации), и вы всегда можете их освежить, если хотитереализовать это.

...