🗊 Презентация Динамические структуры данных

Нажмите для полного просмотра!
Динамические структуры данных, слайд №1 Динамические структуры данных, слайд №2 Динамические структуры данных, слайд №3 Динамические структуры данных, слайд №4 Динамические структуры данных, слайд №5 Динамические структуры данных, слайд №6 Динамические структуры данных, слайд №7 Динамические структуры данных, слайд №8 Динамические структуры данных, слайд №9 Динамические структуры данных, слайд №10 Динамические структуры данных, слайд №11 Динамические структуры данных, слайд №12 Динамические структуры данных, слайд №13 Динамические структуры данных, слайд №14 Динамические структуры данных, слайд №15 Динамические структуры данных, слайд №16 Динамические структуры данных, слайд №17 Динамические структуры данных, слайд №18 Динамические структуры данных, слайд №19 Динамические структуры данных, слайд №20 Динамические структуры данных, слайд №21 Динамические структуры данных, слайд №22 Динамические структуры данных, слайд №23 Динамические структуры данных, слайд №24 Динамические структуры данных, слайд №25 Динамические структуры данных, слайд №26 Динамические структуры данных, слайд №27 Динамические структуры данных, слайд №28 Динамические структуры данных, слайд №29 Динамические структуры данных, слайд №30 Динамические структуры данных, слайд №31 Динамические структуры данных, слайд №32 Динамические структуры данных, слайд №33 Динамические структуры данных, слайд №34 Динамические структуры данных, слайд №35 Динамические структуры данных, слайд №36 Динамические структуры данных, слайд №37 Динамические структуры данных, слайд №38 Динамические структуры данных, слайд №39 Динамические структуры данных, слайд №40 Динамические структуры данных, слайд №41 Динамические структуры данных, слайд №42 Динамические структуры данных, слайд №43 Динамические структуры данных, слайд №44

Содержание

Вы можете ознакомиться и скачать презентацию на тему Динамические структуры данных. Доклад-сообщение содержит 44 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Динамические структуры данных Основные понятия Объявление динамических структур Доступ к данным Работа с памятью Списки Основные операции со списками
Описание слайда:
Динамические структуры данных Основные понятия Объявление динамических структур Доступ к данным Работа с памятью Списки Основные операции со списками

Слайд 2


Элемент динамической структуры
Описание слайда:
Элемент динамической структуры

Слайд 3


Динамические структуры данных, слайд №3
Описание слайда:

Слайд 4


Объявление динамических структур
Описание слайда:
Объявление динамических структур

Слайд 5


Динамические структуры данных, слайд №5
Описание слайда:

Слайд 6


Динамические структуры данных, слайд №6
Описание слайда:

Слайд 7


Доступ к данным в динамических структурах
Описание слайда:
Доступ к данным в динамических структурах

Слайд 8


Динамические структуры данных, слайд №8
Описание слайда:

Слайд 9


Динамические структуры данных, слайд №9
Описание слайда:

Слайд 10


Динамические структуры данных, слайд №10
Описание слайда:

Слайд 11


Memo1->Clear(); Memo1->Clear(); Node *PNode; PNode = new Node; AnsiString St="STO"; strcpy(PNode->Name ,St.c_str()); PNode->Value = 28;...
Описание слайда:
Memo1->Clear(); Memo1->Clear(); Node *PNode; PNode = new Node; AnsiString St="STO"; strcpy(PNode->Name ,St.c_str()); PNode->Value = 28; PNode->Next = NULL; Memo1->Lines->Add("name="+ AnsiString(PNode->Name)+ " value="+(PNode->Value)); delete PNode;

Слайд 12


struct Node struct Node { String Name; int Value; Node *Next; };
Описание слайда:
struct Node struct Node { String Name; int Value; Node *Next; };

Слайд 13


Node *PNode; Node *PNode; PNode = new Node; PNode->Name= "STO"; PNode->Value = 28; PNode->Next = NULL;...
Описание слайда:
Node *PNode; Node *PNode; PNode = new Node; PNode->Name= "STO"; PNode->Value = 28; PNode->Next = NULL; Memo1->Lines->Add("name="+(PNode->Name)+ " value="+(PNode->Value)); delete PNode;

Слайд 14


Списки Однонаправленный (односвязный) список
Описание слайда:
Списки Однонаправленный (односвязный) список

Слайд 15


struct имя_типа { struct имя_типа { информационное поле; адресное поле; }; struct Node { int key; Node *pnext; }; struct point { char name[10];...
Описание слайда:
struct имя_типа { struct имя_типа { информационное поле; адресное поле; }; struct Node { int key; Node *pnext; }; struct point { char name[10]; //String name; int age; point *pnext; };

Слайд 16


struct List {//структура данных int Data; //информационное поле List *Next; //адресное поле };
Описание слайда:
struct List {//структура данных int Data; //информационное поле List *Next; //адресное поле };

Слайд 17


Создание однонаправленного списка
Описание слайда:
Создание однонаправленного списка

Слайд 18


Динамические структуры данных, слайд №18
Описание слайда:

Слайд 19


просмотр однонаправленного списка
Описание слайда:
просмотр однонаправленного списка

Слайд 20


В визуальной среде
Описание слайда:
В визуальной среде

Слайд 21


TForm1 *Form1; TForm1 *Form1; struct List {//структура данных int Data; //информационное поле List *Next; //адресное поле }; List *head,//указатель...
Описание слайда:
TForm1 *Form1; TForm1 *Form1; struct List {//структура данных int Data; //информационное поле List *Next; //адресное поле }; List *head,//указатель на текущий элемент списка *first;//указатель на первый элемент списка

Слайд 22


Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Заполнить первый элемент» head=new List; //сохранили адрес первого...
Описание слайда:
Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Заполнить первый элемент» head=new List; //сохранили адрес первого элемента, //чтобы потом обратиться к нему first=head; //заполняем первый элемент head->Data=StrToInt(Edit1->Text);

Слайд 23


Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Заполнить следующий элемент» head->Next= new List; head=head->Next;...
Описание слайда:
Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Заполнить следующий элемент» head->Next= new List; head=head->Next; head->Data=StrToInt(Edit1->Text);

Слайд 24


Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Конец списка» //определяем конец списка для //последнего элемента...
Описание слайда:
Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Конец списка» //определяем конец списка для //последнего элемента head->Next=NULL;

Слайд 25


Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Просмотр списка» Memo1->Clear(); head=first; //пока не встретится признак...
Описание слайда:
Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Просмотр списка» Memo1->Clear(); head=first; //пока не встретится признак конца списка NULL while(head != NULL) { //вывод на экран значения информационного поля Memo1->Lines->Add(head->Data); head=head->Next; }

Слайд 26


Динамические структуры данных, слайд №26
Описание слайда:

Слайд 27


Динамические структуры данных, слайд №27
Описание слайда:

Слайд 28


Вставка элемента в однонаправленный список
Описание слайда:
Вставка элемента в однонаправленный список

Слайд 29


/*функция добавления элемента с заданным номером в однонаправленный список*/ List* InsertM(List* Head, int Number, //номер добавляемого элемента...
Описание слайда:
/*функция добавления элемента с заданным номером в однонаправленный список*/ List* InsertM(List* Head, int Number, //номер добавляемого элемента списка int DataItem ) { //значение добавляемого элемента списка Number--; //значение номер уменьшается на 1 //выделяется память для вспомогательного списка List *NewItem=new(List); //в поле дата вспомогательного списка //заносится значение добавляемого элемента списка NewItem->Data=DataItem; // признак конца списка NULL в адресное поле NewItem->Next = NULL; //если список пуст if (Head == NULL) { Head = NewItem; //создаем первый элемент списка }

Слайд 30


else { else { //список не пуст List *Current=Head; for(int i=1; i < Number && Current->Next!=NULL; i++) Current=Current->Next; if (Number == 0) {...
Описание слайда:
else { else { //список не пуст List *Current=Head; for(int i=1; i < Number && Current->Next!=NULL; i++) Current=Current->Next; if (Number == 0) { //вставляем новый элемент на первое место NewItem->Next = Head; Head = NewItem; } else {//вставляем новый элемент на не первое место if (Current->Next != NULL) NewItem->Next = Current->Next; Current->Next = NewItem; } } return Head;}

Слайд 31


Обработчик события кнопки Обработчик события кнопки «Добавить элемент» int Numb, DataIt; Numb=StrToInt(Edit3->Text); DataIt=StrToInt(Edit1->Text);...
Описание слайда:
Обработчик события кнопки Обработчик события кнопки «Добавить элемент» int Numb, DataIt; Numb=StrToInt(Edit3->Text); DataIt=StrToInt(Edit1->Text); //добавляем элемент, в качестве аргумента функции используем сохраненный //указатель на первый элемент first head=InsertM(first, Numb, DataIt); Memo1->Clear(); PrintM(head);

Слайд 32


Удаление элемента из однонаправленного списка
Описание слайда:
Удаление элемента из однонаправленного списка

Слайд 33


/*удаление элемента с заданным номером из однонаправленного списка*/ List* DeleteM(List* Head, int Number){ List *ptr;//вспомогательный указатель...
Описание слайда:
/*удаление элемента с заданным номером из однонаправленного списка*/ List* DeleteM(List* Head, int Number){ List *ptr;//вспомогательный указатель List *Current = Head; for (int i = 1; i < Number && Current != NULL; i++) Current = Current->Next; if (Current != NULL){//проверка на корректность if (Current == Head){//удаляем первый элемент Head = Head->Next; delete(Current); Current = Head; }

Слайд 34


else {//удаляем не первый элемент else {//удаляем не первый элемент ptr = Head; while (ptr->Next != Current) ptr = ptr->Next; ptr->Next =...
Описание слайда:
else {//удаляем не первый элемент else {//удаляем не первый элемент ptr = Head; while (ptr->Next != Current) ptr = ptr->Next; ptr->Next = Current->Next; delete(Current); Current=ptr; } } return Head; }

Слайд 35


Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Удалить элемент» int Numb; Numb=StrToInt(Edit3->Text);...
Описание слайда:
Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Удалить элемент» int Numb; Numb=StrToInt(Edit3->Text); head=DeleteM(head,Numb); Memo1->Clear(); PrintM(head);

Слайд 36


/*функция поиска элемента с заданным значением в однонаправленном списке результат работы функции: true − искомый элемент имеется, false − искомый...
Описание слайда:
/*функция поиска элемента с заданным значением в однонаправленном списке результат работы функции: true − искомый элемент имеется, false − искомый элемент отсутствует*/

Слайд 37


//функция удаления однонаправленного списка void Delete_ListM(List* Head){ if (Head != NULL){ Delete_ListM(Head->Next); delete Head; } }
Описание слайда:
//функция удаления однонаправленного списка void Delete_ListM(List* Head){ if (Head != NULL){ Delete_ListM(Head->Next); delete Head; } }

Слайд 38


Пример класса для работы с односвязным списком struct element { //значения из x //будут передаваться в список //сюда добавить другие поля вашей...
Описание слайда:
Пример класса для работы с односвязным списком struct element { //значения из x //будут передаваться в список //сюда добавить другие поля вашей структуры int x; //Адресное поле element *Next; };

Слайд 39


class List //Класс Список class List //Класс Список { element **Head, *First; public: List() { Head=new element; First=Head; Head->x=1;}...
Описание слайда:
class List //Класс Список class List //Класс Список { element **Head, *First; public: List() { Head=new element; First=Head; Head->x=1;} //Конструктор и инициализация //первого элемента списка ~List(); //Деструктор. определен вне класса //Функция для добавления значений в список void Add(int x); //Функция для отображения списка на экране void Show(); };

Слайд 40


List::~List() //Деструктор определен вне класса List::~List() //Деструктор определен вне класса { //Пока по адресу не пусто while (Head!=NULL) {...
Описание слайда:
List::~List() //Деструктор определен вне класса List::~List() //Деструктор определен вне класса { //Пока по адресу не пусто while (Head!=NULL) { //Временная переменная для хранения адреса //следующего элемента element *temp=Head->Next; //Освобождаем адрес обозначающий начало delete Head; //Меняем адрес на следующий Head=temp; } }

Слайд 41


//Функция добавления элементов в список //Функция добавления элементов в список //после х указываются все заполняемые поля //структуры void...
Описание слайда:
//Функция добавления элементов в список //Функция добавления элементов в список //после х указываются все заполняемые поля //структуры void List::Add(int x) { //При каждом вызове выделяется память Head->Next= new element; Head=Head->Next; Head->x=x; }

Слайд 42


//Функция отображения списка на экране //Функция отображения списка на экране void List::Show() { //Определяем указатель, который изначально //равен...
Описание слайда:
//Функция отображения списка на экране //Функция отображения списка на экране void List::Show() { //Определяем указатель, который изначально //равен адресу начала списка element *temp=First; //До тех пор пока не встретит пустое значение while (temp!=NULL) { //Выведет элемент x из списка в Memo1 на форме с именем Form3 – указывайте свою форму Form3->Memo1->Lines->Add(temp->x); //Указываем, что далее нам нужен следующий //элемент temp=temp->Next; } }

Слайд 43


//использование класса //использование класса List ob;//Переменная, тип которой список объявляем //глобально . . . . Обработчик события нажатие на...
Описание слайда:
//использование класса //использование класса List ob;//Переменная, тип которой список объявляем //глобально . . . . Обработчик события нажатие на кнопку «Заполнить следующий элемент» //Считывание из визуальных компонентов int x=StrToInt(Edit1->Text); //Добавление элемента в список ob.Add(x);

Слайд 44


Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Просмотр списка» Memo1->Clear(); ob.Show(); Можно использовать другие...
Описание слайда:
Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Просмотр списка» Memo1->Clear(); ob.Show(); Можно использовать другие варианты для заполнения и отображения содержимого списка см. devcpp_4.pdf При описании класса в отдельном модуле не забудьте указать, если используете для заполнения визуальные компоненты или тип String #include



Похожие презентации
Mypresentation.ru
Загрузить презентацию