Презентация Сложные структуры данных. Связные списки онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Сложные структуры данных. Связные списки абсолютно бесплатно. Урок-презентация на эту тему содержит всего 45 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Сложные структуры данных. Связные списки
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:45 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:273.18 kB
- Просмотров:74
- Скачиваний:1
- Автор:неизвестен
Слайды и текст к этой презентации:
№3 слайд
![Связный список Структура](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img2.jpg)
Содержание слайда: Связный список
Структура данных, представляющая собой конечное множество упорядоченных элементов (узлов), связанных друг с другом посредством указателей, называется связным списком.
Каждый элемент связного списка содержит поле с данными, а также указатель на следующий и/или предыдущий элемент. Эта структура позволяет эффективно выполнять операции добавления и удаления элементов для любой позиции в последовательности.
№4 слайд
![Недостатки связного списка](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img3.jpg)
Содержание слайда: Недостатки связного списка
Недостатком связного списка, как и других структур типа «список», в сравнении его с массивом, является отсутствие возможности работать с данными в режиме произвольного доступа, т. е. список – структура последовательно доступа, в то время как массив – произвольного.
№6 слайд
![Односвязный список Каждый из](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img5.jpg)
Содержание слайда: Односвязный список
Каждый из блоков представляет элемент (узел) списка. Здесь и далее Head list – заголовочный элемент списка (для него предполагается поле next). Он не содержит данные, а только ссылку на следующий элемент. На наличие данных указывает поле info, а ссылки – поле next. Признаком отсутствия указателя является поле null.
№8 слайд
![Двусвязный список Особенность](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img7.jpg)
Содержание слайда: Двусвязный список
Особенность двусвязного списка, что каждый элемент имеет две ссылки: на следующий и на предыдущий элемент, позволяет двигаться как в его конец, так и в начало.
Операции добавления и удаления здесь наиболее эффективны, чем в односвязном списке, поскольку всегда известны адреса тех элементов списка, указатели которых направлены на изменяемый элемент. Но добавление и удаление элемента в двусвязном списке, требует изменения большого количества ссылок, чем этого потребовал бы односвязный список.
№15 слайд
![include lt stdlib.h gt](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img14.jpg)
Содержание слайда: #include <stdlib.h>
#include <stdlib.h>
struct node {
int x;
struct node *next;
};
int main()
{
/* Обычная структура */
struct node *root;
/* Теперь root указывает на структуру node */
root = (struct node *) malloc( sizeof(struct node) );
/* Узел root указывает на следующий элемент, которого пока нет */
root->next = NULL;
/* Использование оператора -> позволяет изменять узел структуры, на которую он указывает */
root->x = 5;
free ( root );
return 0;
}
№16 слайд
![int main int main Это менять](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img15.jpg)
Содержание слайда: int main()
int main()
{
/* Это менять нельзя, т.к. тогда мы потеряем список в памяти */
struct node *root;
/* Это указывает на каждый элемент списка, пока мы пробегаем по нему */
struct node *conductor;
root = malloc( sizeof(struct node) );
root->next = NULL;
root->x = 12;
conductor = root;
if ( conductor != NULL ) {
while ( conductor->next != NULL)
{
conductor = conductor->next;
}
}
№17 слайд
![Создаёт новый узел в конце](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img16.jpg)
Содержание слайда: /* Создаёт новый узел в конце */
/* Создаёт новый узел в конце */
conductor->next = malloc( sizeof(struct node) );
conductor = conductor->next;
if ( conductor == NULL )
{
printf("Не хватает памяти!\n");
return 0;
}
/* инициализируем память */
conductor->next = NULL;
conductor->x = 42;
return 0;
}
№21 слайд
![Стек Стеком называется](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img20.jpg)
Содержание слайда: Стек
Стеком называется структура данных, организованная по принципу LIFO – last-in, first-out , т.е. элемент, попавшим в множество последним, должен первым его покинуть.
При практическом использовании часто налагается ограничение на длину стека, т.е. требуется, чтобы количество элементов не превосходило заранее определенное целое число N
№23 слайд
![Стек Реализация на основе](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img22.jpg)
Содержание слайда: Стек
Реализация 1
на основе массива
Для реализации стека, состоящего не более чем из 100 чисел, следует определить массив, состоящий из 100 элементов и целую переменную, указывающую на вершину стека (ее значение будет также равно текущему числу элементов в стеке)
int stack[100], n=0;
№25 слайд
![Стек Реализация на основе](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img24.jpg)
Содержание слайда: Стек
Реализация 3
на основе указателей
Если максимальный размер стека можно выяснить только после компиляции программы, то память под стек нужно выделять динамически. При этом, вершину стека можно указывать не индексом в массиве, а указателем на вершину. Для этого следует определить следующие переменные
int *stack, *head;
или
struct SStack{
int *stack;
int *n;
};
№26 слайд
![Очередь Очередью называется](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img25.jpg)
Содержание слайда: Очередь
Очередью называется структура данных, организованная по принципу FIFO – first-in, first-out , т.е. элемент, попавшим в множество первым, должен первым его и покинуть. При практическом использовании часто налагается ограничение на длину очереди, т.е. требуется, чтобы количество элементов не превосходило заранее определенное целое число N
№28 слайд
![Очередь реализация Для](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img27.jpg)
Содержание слайда: Очередь
реализация
Для реализации очереди необходимо знать первый и последний элемент находящийся в ней. Например, для реализации стандартной очереди из менее чем 100 целых чисел определить следующие данные
#define N 100
int array[N], begin=0,end=0;
Соответственно при добавлении элементов в очередь переменная end будет увеличиваться, а при изъятии их из очереди увеличиваться будет begin.
№30 слайд
![Бинарное дерево реализация](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img29.jpg)
Содержание слайда: Бинарное дерево
реализация
struct STree{
int value;
struct STree *prev;
struct STree *left, *right;
};
здесь указатель prev указывает на родительский элемент данной вершины, а left и right – на двух потомков, которых традиционно называют левым и правым. Величина value называется ключом вершины.
№33 слайд
![Дерево поиска Добавление](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img32.jpg)
Содержание слайда: Дерево поиска
Добавление элемента
struct STree *Insert(struct STree *root, struct STree *v){
if(v->value>=root->value)
return root->right==NULL ?
(v->prev=root, v->right=v->left=NULL, root->right=v) : Insert(root->right, v);
else
return root->left==NULL ?
(v->prev=root,v->right=v->left=NULL,root->left=v) : Insert(root->left, v);
};
№43 слайд
![Аргументы командной строки](/documents_6/e5bcf21ddfc940dd9b67accea33b01de/img42.jpg)
Содержание слайда: Аргументы командной строки
Обратиться к аргументам командной строки в программе возможно через специальные переменные int argc и char *argv[]
argc – число переданных аргументов,
argv – массив строк равный числу аргументов.
При вызове программы всегда есть один аргумент имя запущенной программы.
Скачать все slide презентации Сложные структуры данных. Связные списки одним архивом:
Похожие презентации
-
Динамические структуры данных. Односвязные и двусвязные списки
-
Абстрактные структуры данных. Списки
-
Списки. Структуры данных. Массивы
-
Динамические структуры данных: списки
-
Рекурсивные структуры данных. Списки в Prolog
-
Рекурсивные структуры данных. Списки в Prolog. (Тема 7)
-
Структура программы в Паскале. Ввод и вывод данных. (Тема 2)
-
Классификация структур данных. Лекция 2
-
Динамические структуры данных (язык Паскаль)
-
Алгоритмы и структуры данных. Сортировка обменом Pump. Тема 5