Галерея диаграмм связей Карта структуры данных
Это интеллектуальная карта структуры данных. Физические символы, хранящиеся на определенном носителе и которые можно распознать, являются носителями информации. Эти символы могут быть числами, символами и т. д. или другие,
Отредактировано в 2023-12-02 14:20:48A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
структура данных
введение
данные
определение
Физические символы, хранящиеся на определенном носителе и которые можно распознать, являются носителями информации. Эти символы могут быть числами, символами или другими.
представляют собой:
данные
элемент данных
элемент данных
Наименьшая единица, из которой состоят данные
базовая единица данных
логическая структура
Отношения между элементами данных
Установить структуру
Принадлежат к той же коллекции
линейная структура
Один к одному
Линейный список, куча, стек
древовидная структура
один ко многим
структура графа
многие ко многим
структура хранения
последовательная структура хранения
структура хранения цепи
Структура хранения индекса
Структура хранения хеша
алгоритм
определение
Описание конкретных шагов по решению конкретной задачи, конечная последовательность инструкций.
пять основных свойств
Конечность
Должно завершиться после выполнения ограниченного количества шагов.
уверенность
осуществимость
Любой вычислительный шаг можно разбить на базовые выполняемые операционные этапы, каждый из которых может быть выполнен за ограниченное время.
входить
Алгоритм может иметь 0 или более входных данных.
выход
Алгоритм имеет 1 или более выходов.
Общие правила оформления
правильность
читабельность
Надежность
Реагируйте соответствующим образом на неправильный ввод
Высокая эффективность и малый объем хранения
сложность
линейная структура
линейный стол
временная сложность
Поиск в таблице последовательностей по значению
п 1/2
Вставка таблицы последовательности
На)
удалить
На)
куча
последним пришёл первым ушёл
определение
вершина стека
Окончание операции
нижняя часть стека
Фиксированный конец
стек последовательностей
top=-1 — пустой стек
top=MAXSIZE-1 означает полный стек
хранилище цепочек стека
Похоже на односвязный список
очередь
первым прибыл, первым обслужен
определение
хвост очереди
Разрешить вставку
Лидер группы
Разрешить удаление
последовательная очередь
круговая очередь
Оставить место неиспользованным
Предложение полное
(сзади 1)%MAXQUEUE==спереди
передний == задний
Назовите это короче
связанный список
Односвязный список без головного узла
Операции с участием головного узла требуют особого обращения.
Односвязный список с головным узлом
Указатель головы не равен нулю
Круговой односвязный список
Поле указателя последнего узла хранит адрес первого узла, образуя кольцо.
Операция прерывания в операции определяет, является ли это указателем головы.
Двусвязный список
Есть предшественники и продолжатели
множество
Расчет адреса хранилища
Базовый адрес (i 1)*n (j-1)
Найти метод
последовательный поиск
Траверс
Средняя длина поиска=n 1/2
Поиск по индексу
Создать индексную запись
Ключевые слова
Блокировать
элемент указателя
Средняя длина поиска = (n/s s)/2 1
n — длина таблицы, поровну разделенная на b блоков, каждый блок содержит s записей
Поиск по хешу
Метод построения хеш-функции
прямая хэш-функция
В качестве адреса возьмите само ключевое слово или линейную функцию ключевого слова.
Размер набора адресов == размер набора ключевых слов
Хэш-функция численного анализа
Найдите центр квадрата
метод складывания
сдвинуть складку
обрушение границы
За исключением остатка
H=модуль ключа p
Возьмите простое число
метод случайных чисел
Анализ производительности поиска хеша
фактор
Хэш-функция
В общем, не принимайте это во внимание
Методы разрешения конфликтов
закон об открытом адресе
Линейное зондирование и последующее хеширование
1, 2, 3,. . откладывать
(1 1/1-α)/2
Второе обнаружение и затем хеширование
Положительное и отрицательное число в квадрате задержки
ln(1-α)/α
Псевдослучайное зондирование с последующим хешированием
псевдослучайная последовательность
ln(1-α)/α
перефразировать
ln(1-α)/α
метод цепочки адресов
Конфликтующие записи хранятся в одном линейном связанном списке.
1 α/2
общественная зона переполнения
Пусть другой вектор будет таблицей переполнения
Коэффициент заполнения хеш-таблицы
α = количество записей, заполненных в таблице/длина хэш-таблицы
Средняя длина поиска в хеш-таблице является функцией α, а не функцией n.
Обязательное условие: данные загружаются равномерно
Сортировать
стабильная сортировка
Относительное положение данных ключевых слов остается неизменным до и после сортировки.
вставить напрямую
Разделенный на две части, левая часть упорядочена, а правая сторона неупорядочена. Первый элемент справа занимает соответствующую позицию слева.
О (квадрат)
Стабилизировать
Сортировка холмов
По фиксированному интервалу d делится на одну группу, а внутри одной группы используется вставка или бинарная сортировка.
Выполнено впервые, сократите интервал до группировки, а затем отсортируйте
пока интервал не станет 1
нестабильный
Пузырьковая сортировка
Сравнить n-i 1 элемент последовательно слева направо.
Стабилизировать
квадрат/2
Простой выбор
Возьмите максимальное значение из неупорядоченной последовательности и добавьте его в конец упорядоченной последовательности.
квадрат
Стабилизировать
Поразрядная сортировка
Множественная сортировка по ключевым словам
Упорядочение нескольких ключевых слов
высокий приоритет
Маленький порядок байтов
Быстрая сортировка
Разделите последовательность на две части (необходимо для обеспечения относительного соотношения размеров)
Рекурсия на две подпоследовательности для быстрой сортировки
Слияние не требуется, поскольку массив в это время полностью упорядочен.
нлогн
Но когда сама последовательность упорядочена, она вырождается в квадрат.
Сортировка слиянием
Разделите последовательность, которую нужно отсортировать, на несколько подпоследовательностей, каждая из которых является упорядоченной последовательностью. Затем объедините упорядоченные подпоследовательности в общую упорядоченную последовательность.
Дерево — это конечное множество из n (n>=0) узлов. Когда n=0, такое дерево называется пустым. В любом непустом дереве есть только один конкретный узел, называемый корнем. При n>1 оставшиеся узлы можно разбить на m (m>0) непересекающиеся конечные множества, каждое из которых само по себе является деревом и называется поддеревом корня (SubTree).
Деревья обладают следующими свойствами:
1. Поддеревья не пересекаются.
2. За исключением корневого узла, каждый узел имеет только один родительский узел.
3. Дерево с N узлами имеет N-1 ребер.
Степень дерева относится к максимальной степени среди всех узлов в дереве, а листовой узел относится к узлу со степенью 0. Глубина дерева относится к самому большому уровню среди всех узлов дерева. На i-м уровне двоичного дерева имеется не более 2^(i-1) узлов (i≥1), а двоичное дерево глубины k имеет не более 2^k-1 узлов (k≥1).
Рекурсия и разделяй и властвуй
рекурсия
определение
Назовите себя прямо или косвенно
сцены, которые будут использоваться
Определение рекурсивно
Факториал n, последовательность Фибоначчи
Структуры данных рекурсивны
связанный список
разделяй и властвуй
разделяй и властвуй
сцены, которые будут использоваться
Небольшой масштаб, легко решить
Проблему можно разложить на подзадачи одного типа с оптимальной подструктурой.
Решение исходной задачи можно получить объединением подзадач
подзадачи независимы
Временная сложность алгоритма
Итерационный метод
Развернуть напрямую
метод рекурсивного дерева
основной метод
Дерево
Бинарное дерево
концепция
Тратить
Количество поддеревьев, принадлежащих узлу
лист
узел со степенью 0
ребенок
Корень поддерева узла
родители
Верхний узел дочернего узла
предок
Все узлы на ветвях от корневого узла до этого узла
Уровень узла
Начиная с корневого узла, корень является первым уровнем.
степень двоичного дерева
Максимальная степень узла
Глубина двоичного дерева
Максимальное количество слоев узлов
особенный
полное двоичное дерево
Все узлы ветвей имеют левое и правое поддерево.
Все листья и все листовые узлы находятся на одном слое.
полное двоичное дерево
Бинарное дерево, в котором все уровни, кроме последнего, полностью заполнены. Узлы последнего слоя непрерывно сосредоточены слева.
Полное двоичное дерево должно быть полным двоичным деревом, а полное двоичное дерево не может быть полным двоичным деревом.
природа
1. В непустом бинарном дереве общее количество узлов i-го уровня не превышает i>=1.
2. Бинарное дерево глубины h имеет не более 2^h - 1 узлов (h>=1) и не менее h узлов.
3. Для любого бинарного дерева, если количество листовых узлов равно N0, а общее количество узлов степени 2 равно N2, то N0=N2 1.
4. Глубина полного двоичного дерева с n узлами равна logn 1.
Траверс
Обход двоичного дерева подразумевает посещение каждого узла двоичного дерева в соответствии с определенными правилами, так что каждый узел посещается и посещается только один раз. Существует три основных способа обхода двоичного дерева: обход в предварительном порядке, обход по порядку и обход после порядка.
1. Обход предзаказа:
* Доступ к корневому узлу
* Предзаказ обхода левого поддерева
* Предзаказ обхода правого поддерева
2. Обход по порядку:
* Порядковый обход левого поддерева
* Доступ к корневому узлу
* По порядку обхода правого поддерева
3. Обход постзаказа:
* Обход левого поддерева после заказа
* Постзаказный обход правого поддерева
* Доступ к корневому узлу
Обход приложения
Постройте двоичное дерево из последовательностей обхода по предварительному заказу и последовательностей обхода по порядку.
Предварительный и постзаказ не могут построить двоичное дерево.
Найдите глубину двоичного дерева
Ниже приведен пример псевдокода, который использует рекурсию для определения глубины двоичного дерева:
```
функция TreeDepth (корень):
если root равен нулю:
вернуть 0
еще:
leftDepth = TreeDepth(root.left)
rightDepth = TreeDepth(root.right)
вернуть максимум (leftDepth, rightDepth) 1
```
В этом псевдокоде root представляет корневой узел двоичного дерева. Если корневой узел пуст, возвращаемая глубина равна 0; в противном случае глубина левого и правого поддерева вычисляется рекурсивно, большее из двух плюс 1 принимается за глубину текущего поддерева и максимальную глубину. возвращается как результат.
Двоичное дерево сортировки
вставлять
сбалансированное двоичное дерево
Разница в глубине между левым и правым поддеревьями каждого узла не превышает 1.
Преобразование двоичного отсортированного дерева в сбалансированное двоичное дерево.
Левое одиночное вращение RR
Вставьте узел в правое поддерево правого дочернего узла узла.
Правое одиночное вращение LL
Вставьте узел в левое поддерево левого дочернего узла узла.
Поверните LR в обоих направлениях, сначала влево, затем вправо.
Вставьте узел в правое поддерево левого дочернего узла узла.
Поверните RL в обоих направлениях, сначала вправо, а затем влево.
Вставьте узел в левое поддерево правого дочернего узла узла.
Оптимальное бинарное дерево (дерево Хаффмана)
Бинарное дерево с наименьшей длиной взвешенного пути
Конструкция дерева Хаффмана
Выберите наименьшую комбинацию весов из корневого узла, чтобы создать новый корень.
Кодирование Хаффмана
Слева 0 Справа 1
преобразование дерева в двоичное дерево
Добавить строку
Узлы Brother соединены линиями
Выйти в онлайн
Сохраните связь между родителями и крайним левым ребенком и удалите остальных.
куча
1. Максимальная куча. Куча, в которой каждый узел больше или равен своим дочерним узлам, называется максимальной кучей.
2. Минимальная куча. Куча, в которой каждый узел меньше или равен своим дочерним узлам, называется минимальной кучей.
Вставка кучи
картина
полный график
Для ориентированного графа с n вершинами
Количество ребер n(n-1)
Направленный полный граф
Количество ребер n(n-1)/2
неориентированный полный граф
основная концепция
Тратить
степень
степень
Количество сторон == сумма градусов/2
путь
простой путь
Проходить любую вершину не более одного раза
Длина пути – это количество ребер, которые он содержит.
кольцо (петля)
связный граф
Сильно связный граф
Между любыми двумя вершинами ориентированного графа существует путь
Сильно связанный компонент
последовательная структура хранения
матрица смежности
корреляционная матрица
структура хранения цепи
список смежности
список обратной смежности
перекрестный список
тиалвекс
Хедвекс
Хлинк
Тлинк
множественный список смежности
Неориентированный граф
Ивертекс
ссылка
Джвертекс
Джлинк
Траверс
сначала глубина
ширина прежде всего
связующее дерево
Функции
Полный граф с n вершинами имеет n (n-2) различных остовных деревьев.
минимальное связующее дерево
Алгоритм Прима
Выберите сторону
Выберите наименьшее новое ребро для известных связных компонентов.
Алгоритм Краскала
Выбор ребер на основе веса ребра
Если определенное ребро образует петлю, отбросьте его.
жадный алгоритм
взвешенный кратчайший путь
Алгоритм Дейкстры
Разделен на два набора точек.
Найден кратчайший путь
Неопределенный
топологическая сортировка
Не должно быть петли
Критический путь
Самое раннее время начала точки на пути == самое позднее время начала.
динамическое программирование