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

Нажмите для полного просмотра!
Динамические структуры данных, слайд №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;
PNode->Next = NULL;
Memo1->Lines->Add("name="+ AnsiString(PNode->Name)+
" value="+(PNode->Value));
delete PNode;
Описание слайда:
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;
Memo1->Lines->Add("name="+(PNode->Name)+ " value="+(PNode->Value));
delete PNode;
Описание слайда:
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];   //String name;
 int age; 
point *pnext; };
Описание слайда:
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,//указатель на текущий элемент списка
	*first;//указатель на первый элемент списка
Описание слайда:
TForm1 *Form1; TForm1 *Form1; struct List {//структура данных int Data; //информационное поле List *Next; //адресное поле }; List *head,//указатель на текущий элемент списка *first;//указатель на первый элемент списка

Слайд 22





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

Слайд 23





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

Слайд 24





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

Слайд 25





Обработчик события нажатие на кнопку 
Обработчик события нажатие на кнопку 
«Просмотр списка»
Memo1->Clear();
head=first;
//пока не встретится признак конца списка NULL
	while(head != NULL)
{ 
//вывод на экран значения информационного поля
Memo1->Lines->Add(head->Data);
head=head->Next;
  }
Описание слайда:
Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Просмотр списка» 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,         //номер добавляемого элемента списка
int DataItem  ) {  //значение добавляемого элемента списка
Number--; //значение номер уменьшается на 1
//выделяется память для вспомогательного списка              
  	List *NewItem=new(List);  
//в поле дата вспомогательного списка 
//заносится значение добавляемого элемента списка
  	NewItem->Data=DataItem;  
// признак конца списка NULL в адресное поле
  	NewItem->Next = NULL;
//если список пуст
if (Head == NULL) {
    Head = NewItem; //создаем первый элемент списка
  }
Описание слайда:
/*функция добавления элемента с заданным номером в однонаправленный список*/ 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) 	{
//вставляем новый элемент на первое место
	   NewItem->Next = Head;
	   Head = NewItem;
	}
else {//вставляем новый элемент на не первое место
	  if (Current->Next != NULL)
		NewItem->Next = Current->Next;
	  Current->Next = NewItem;
	}
  }  return Head;}
Описание слайда:
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);
//добавляем элемент, в качестве аргумента функции используем сохраненный 
//указатель на первый элемент first
head=InsertM(first, Numb, DataIt);
Memo1->Clear();
 PrintM(head);
Описание слайда:
Обработчик события кнопки Обработчик события кнопки «Добавить элемент» 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 *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;
	}
Описание слайда:
/*удаление элемента с заданным номером из однонаправленного списка*/ 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 = Current->Next;
	  delete(Current);
	  Current=ptr;
	}
  }
  return Head;
}
Описание слайда:
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);
head=DeleteM(head,Numb);
 Memo1->Clear();
 PrintM(head);
Описание слайда:
Обработчик события нажатие на кнопку Обработчик события нажатие на кнопку «Удалить элемент» 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 
//будут передаваться в список
//сюда добавить другие поля вашей структуры
int x; 
//Адресное поле
element *Next; 
};
 
Описание слайда:
Пример класса для работы с односвязным списком 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;} //Конструктор и инициализация
                        //первого элемента списка
 ~List(); //Деструктор. определен вне класса
//Функция для добавления значений в список
void Add(int x); 
//Функция для отображения списка на экране
void Show(); 
};
Описание слайда:
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)       {    
//Временная переменная для хранения адреса //следующего элемента
        element *temp=Head->Next;         
//Освобождаем адрес обозначающий начало delete Head; 
//Меняем адрес на следующий
        Head=temp;      
}
}
Описание слайда:
List::~List() //Деструктор определен вне класса List::~List() //Деструктор определен вне класса { //Пока по адресу не пусто     while (Head!=NULL)       {     //Временная переменная для хранения адреса //следующего элемента         element *temp=Head->Next;          //Освобождаем адрес обозначающий начало delete Head; //Меняем адрес на следующий         Head=temp;      } }

Слайд 41





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

Слайд 42





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

Слайд 43





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

Слайд 44





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



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