Skip to content

Commit 655cf86

Browse files
committed
feat: добавить разделы плюсы и минусы для всех структур
1 parent 6c01906 commit 655cf86

File tree

12 files changed

+82
-53
lines changed

12 files changed

+82
-53
lines changed

docs/assets/index-Bjz4-Jxp.js

Lines changed: 0 additions & 26 deletions
This file was deleted.

docs/assets/index-waQYeh51.css renamed to docs/assets/index-DpAEkq_y.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/assets/index-QG8nhOAk.js

Lines changed: 26 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
<link rel="icon" href="/js-data-structures/favicon.ico" />
66
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
77
<title>Структуры данных для frontend-разработчика</title>
8-
<script type="module" crossorigin src="/js-data-structures/assets/index-Bjz4-Jxp.js"></script>
9-
<link rel="stylesheet" crossorigin href="/js-data-structures/assets/index-waQYeh51.css">
8+
<script type="module" crossorigin src="/js-data-structures/assets/index-QG8nhOAk.js"></script>
9+
<link rel="stylesheet" crossorigin href="/js-data-structures/assets/index-DpAEkq_y.css">
1010
</head>
1111
<body>
1212
<div id="app"></div>

src/structures/array/view-array.vue

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,18 @@ import FilmsList from '@/structures/array/examples/films-list.vue'
1919
используются для хранения коллекции элементов.
2020
</template>
2121

22+
<template #pros>
23+
Когда вам нужно хранить список элементов, где важен порядок. <br />
24+
Когда требуется частое выполнение операций, связанных с индексами. <br />
25+
Когда вы работаете с коллекциями данных, которые требуют частых итераций или применения функций к каждому элементу.
26+
</template>
27+
28+
29+
<template #cons>
30+
Производительность при вставке/удалении: вставка или удаление элементов в начале или середине массива может быть медленным, так как требует перемещения всех последующих элементов. <br />
31+
Ограниченные ключи: в качестве ключей могут использоваться только числовые индексы, что ограничивает их использование для неиндексированных данных.
32+
</template>
33+
2234
<template #example1>
2335
<films-list />
2436
</template>

src/structures/graph/examples/friend-graph-d3.vue

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,14 @@ function initGraph() {
4141
{ source: 'Дарья', target: 'Фёдор' },
4242
]
4343
44-
// Создаем SVG
4544
svg = d3
4645
.select(graph.value)
4746
.append('svg')
48-
.attr('width', '100%') // SVG занимает 100% ширины родителя
49-
.attr('height', height) // Высота задается динамически
50-
.attr('viewBox', `0 0 ${width} ${height}`) // viewBox для масштабирования
51-
.attr('preserveAspectRatio', 'xMidYMid meet') // Сохранение пропорций
47+
.attr('width', '100%')
48+
.attr('height', height)
49+
.attr('viewBox', `0 0 ${width} ${height}`)
50+
.attr('preserveAspectRatio', 'xMidYMid meet')
5251
53-
// Создаем симуляцию
5452
simulation = d3
5553
.forceSimulation(nodes)
5654
.force(
@@ -63,7 +61,6 @@ function initGraph() {
6361
.force('charge', d3.forceManyBody().strength(-300))
6462
.force('center', d3.forceCenter(width / 2, height / 2))
6563
66-
// Добавляем линии
6764
const link = svg
6865
.append('g')
6966
.attr('stroke', '#aaa')
@@ -72,7 +69,6 @@ function initGraph() {
7269
.join('line')
7370
.attr('stroke-width', 2)
7471
75-
// Добавляем узлы
7672
const node = svg
7773
.append('g')
7874
.attr('stroke', '#fff')
@@ -84,7 +80,6 @@ function initGraph() {
8480
.attr('fill', '#69b3a2')
8581
.call(drag(simulation))
8682
87-
// Добавляем метки
8883
const label = svg
8984
.append('g')
9085
.selectAll('text')
@@ -95,7 +90,6 @@ function initGraph() {
9590
.attr('dx', 18)
9691
.attr('dy', 4)
9792
98-
// Обновляем позиции при каждом тике
9993
simulation.on('tick', () => {
10094
link
10195
.attr('x1', (d) => d.source.x)
@@ -109,19 +103,16 @@ function initGraph() {
109103
}
110104
111105
function handleResize() {
112-
// Получаем новые размеры контейнера
113106
const containerWidth = graph.value?.clientWidth ?? width
114107
const containerHeight = height
115108
116-
// Обновляем размеры SVG
117109
svg
118110
?.attr('width', containerWidth)
119111
.attr('height', containerHeight)
120112
.attr('viewBox', `0 0 ${containerWidth} ${containerHeight}`)
121113
122-
// Обновляем центр силы для симуляции
123114
simulation?.force('center', d3.forceCenter(containerWidth / 2, containerHeight / 2))
124-
simulation?.alpha(1).restart() // Перезапускаем симуляцию для применения изменений
115+
simulation?.alpha(1).restart()
125116
}
126117
127118
function drag(_simulation: d3.Simulation<d3.SimulationNodeDatum, undefined> | null) {

src/structures/graph/view-graph.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import FriendGraphD3 from './examples/friend-graph-d3.vue'
2020
представления социальных сетей, где узлы — это люди, а рёбра — их дружеские связи.
2121
</template>
2222

23-
<template #pros> Когда нужна визуализация данных </template>
23+
<template #pros> Когда нужна связь между элементами. В рамках Frontend чаще всего применяется, когда нужна визуализация данных. </template>
2424

2525
<template #cons>
2626
Одной из основных проблем графов является сложность алгоритмов обхода и поиска, особенно в

src/structures/map/view-map.vue

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,19 @@ import FilmMap from '@/structures/map/examples/film-map.vue'
1818
Карта (как и объект или хэш-таблица) — коллекция пар ключ/значение.
1919
</template>
2020

21+
<template #pros>
22+
Когда вам нужно хранить данные, где каждый элемент имеет уникальный ключ. <br />
23+
Когда данные имеют сложную структуру с различными свойствами. <br />
24+
Когда требуется быстрый доступ к данным по ключу, а не по индексу.
25+
</template>
26+
27+
28+
<template #cons>
29+
Методы итерации: менее удобные методы для итерации по сравнению с другими структурами данных.
30+
</template>
31+
2132
<template #example1>
22-
<p>Фильм со своими свойствами: название, жанр, изображение</p>
33+
<p>Фильм со своими свойствами: название, жанр, изображение.</p>
2334
<film-map />
2435
</template>
2536
</app-section>

src/structures/queue/view-queue.vue

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,17 @@ import ToastWrapper from '@/structures/queue/examples/notifications/toast-wrappe
2323
Очередь — это структура данных, работающая по принципу FIFO (First In, First Out), что
2424
означает, что первый добавленный элемент будет первым извлечён.
2525
</template>
26+
27+
<template #pros>
28+
Когда нужно следовать принципу "первый пришёл — первый вышел" (FIFO, First In First Out).
29+
</template>
30+
2631
<template #cons>
27-
<p>
28-
Очереди могут стать узким местом в производительности, если элементы добавляются быстрее,
29-
чем обрабатываются. Это может привести к переполнению памяти, если не управлять размером
30-
очереди должным образом.
31-
</p>
32+
Очереди могут стать узким местом в производительности, если элементы добавляются быстрее,
33+
чем обрабатываются. Это может привести к переполнению памяти, если не управлять размером
34+
очереди должным образом.
3235
</template>
36+
3337
<template #example1>
3438
<p>
3539
Очередь может быть использована для управления порядком загрузки файлов, обеспечивая их

src/structures/set/view-set.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ import TagsExample from '@/structures/set/examples/tags-example.vue'
2020
категорий.
2121
</template>
2222

23-
<template #pros> Когда нужно часто проверять на наличие элемента в структуре (has) </template>
23+
<template #pros> Когда нужно хранить уникальные элементы без повторений и быстро проверять их наличие (has). </template>
24+
25+
<template #cons> Не подойдет, когда нужен доступ к элементу по индексу или когда допустимы повторы. </template>
2426

2527
<template #example1>
2628
<a href="https://premier.one/series/dramy/RU" target="_blank">Онлайн-кинотеатр</a>, где фильмы

0 commit comments

Comments
 (0)