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

Категория: Образование
Нажмите для полного просмотра!
Динамические структуры данных, слайд №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

Содержание

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

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


Слайд 1


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

Слайд 2


10.1 Списки Список – способ организации данных, предполагающий использова-ние указателей для определения следующего элемента. Элемент списка состоит...
Описание слайда:
10.1 Списки Список – способ организации данных, предполагающий использова-ние указателей для определения следующего элемента. Элемент списка состоит из двух частей: информационной и адресной. Информационная часть содержит поля данных. Адресная – включает от одного до n указателей, содержащих адреса следующих элементов. Количество связей, между соседними элементами списка определяет его связность: односвязные, двусвязные, n-связные.

Слайд 3


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

Слайд 4


Примеры описания элементов списка Односвяный список: struct element { {тип указателя} char name[16]; {информационное поле 1} char telefon[7];...
Описание слайда:
Примеры описания элементов списка Односвяный список: struct element { {тип указателя} char name[16]; {информационное поле 1} char telefon[7]; {информационное поле 2} element *p; {адресное поле} }; Двусвяный список: struct element { {тип указателя} char name[16]; {информационное поле 1} char telefon[7]; {информационное поле 2} element *prev; {адресное поле «предыдущий»} element *next; {адресное поле «следующий»} };

Слайд 5


10.2 Односвязные списки Аналогично одномерным массивам односвязные списки реализуют последовательность элементов. Однако в отличие от одномерных...
Описание слайда:
10.2 Односвязные списки Аналогично одномерным массивам односвязные списки реализуют последовательность элементов. Однако в отличие от одномерных массивов позволяют: работать с произвольным количеством элементов, добавляя и удаляя их по мере необходимости; осуществлять вставку и удаление записей, не перемещая остальных элементов последовательности; но не допускают прямого обращения к элементу по индексу; требуют больше памяти для размещения.

Слайд 6


Основные приемы работы Описание элемента списка: struct element {тип на элемента} {int num; {число} element *p; {указатель на следующий элемент} };...
Описание слайда:
Основные приемы работы Описание элемента списка: struct element {тип на элемента} {int num; {число} element *p; {указатель на следующий элемент} }; Описание переменной – указателя списка и нескольких переменных-указателей в статической памяти: element * first, {адрес первого элемента} *n,*f,*q; {вспомогательные указатели} Исходное состояние – «список пуст»: first=NULL;

Слайд 7


Основные приемы работы (2)‏ 1 Добавление элемента к пустому списку: first=new element; first ->num=5; first->p=NULL; 2 Добавление элемента перед...
Описание слайда:
Основные приемы работы (2)‏ 1 Добавление элемента к пустому списку: first=new element; first ->num=5; first->p=NULL; 2 Добавление элемента перед первым (по типу стека): q=new element; q->num=4; q->p=first; first=q; 3 Добавление элемента после первого (по типу очереди): q=new element; q->num=4; q->p=NULL; first->p=q;

Слайд 8


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

Слайд 9


Динамические структуры данных (Ex10_1) Пример. Стек записей. #include "stdafx.h" #include #include struct zap { char det[10]; float diam;...
Описание слайда:
Динамические структуры данных (Ex10_1) Пример. Стек записей. #include "stdafx.h" #include #include struct zap { char det[10]; float diam; zap *p; }; int main(int argc, char* argv[]) { zap a,*r,*q,*f; r=new zap; r->p=NULL; puts("Input strings"); scanf("%s %f\n",r->det,&r->diam);

Слайд 10


Динамические структуры данных (2) while((scanf("\n%s",a.det)),strcmp(a.det,"end")!=0) { scanf("%f",&a.diam); q=r; r=new...
Описание слайда:
Динамические структуры данных (2) while((scanf("\n%s",a.det)),strcmp(a.det,"end")!=0) { scanf("%f",&a.diam); q=r; r=new zap; strcpy(r->det,a.det); r->diam=a.diam; r->p=q; }

Слайд 11


Динамические структуры (3) Удаление записей q=r; do {if (q->diamp; delete(q); q=r; } else {q=q->p; delete(f->p); f->p:=q } else {f=q; q=q->p; }...
Описание слайда:
Динамические структуры (3) Удаление записей q=r; do {if (q->diamp; delete(q); q=r; } else {q=q->p; delete(f->p); f->p:=q } else {f=q; q=q->p; } }while(q!=NULL);

Слайд 12


Динамические структуры данных (4) q=r; puts("Result"); if(q==NULL) puts("No information"); else do { printf("%s...
Описание слайда:
Динамические структуры данных (4) q=r; puts("Result"); if(q==NULL) puts("No information"); else do { printf("%s %5.1f\n",q->det,q->diam); q=q->p; } while (q!=NULL); return 0; }

Слайд 13


Кольцевой список 1 2 3 4 5 // Ex10_2.cpp #include "stdafx.h" #include int play(int n,int m) { struct child { int name; child *p;}; int i,j;...
Описание слайда:
Кольцевой список 1 2 3 4 5 // Ex10_2.cpp #include "stdafx.h" #include int play(int n,int m) { struct child { int name; child *p;}; int i,j; child *first,*next,*pass;

Слайд 14


Создание списка { Создание списка } first=new child; first->name=1; pass=first; for( i=2;iname=i; pass->p=next; pass=next; } pass->p:=first;...
Описание слайда:
Создание списка { Создание списка } first=new child; first->name=1; pass=first; for( i=2;iname=i; pass->p=next; pass=next; } pass->p:=first; {Замыкание круга}

Слайд 15


Проход по кольцу m-1 раз pass=first; for{i=n;i>1;i++) { for(j=1;jp;}
Описание слайда:
Проход по кольцу m-1 раз pass=first; for{i=n;i>1;i++) { for(j=1;jp;}

Слайд 16


Удаление m-го элемента. Основная программа printf(“%2d\n”,pass->name); next->p=pass->p; delete(pass); pass=next->p; } //Возврат результата return...
Описание слайда:
Удаление m-го элемента. Основная программа printf(“%2d\n”,pass->name); next->p=pass->p; delete(pass); pass=next->p; } //Возврат результата return pass->name; }

Слайд 17


10.3 Бинарные сортированные деревья В математике бинарным деревом называют конечное множество вершин, которое либо пусто, либо состоит из корня и не...
Описание слайда:
10.3 Бинарные сортированные деревья В математике бинарным деревом называют конечное множество вершин, которое либо пусто, либо состоит из корня и не более чем двух непересекающихся бинарных деревьев, называемых левым и правым поддеревьями данного корня.

Слайд 18


Построение бинарного дерева Рассмотрим последовательность целых чисел: {5, 2, 8, 7, 2, 9, 1, 5} Пример. Разработать программу сортировки...
Описание слайда:
Построение бинарного дерева Рассмотрим последовательность целых чисел: {5, 2, 8, 7, 2, 9, 1, 5} Пример. Разработать программу сортировки последовательности чисел с использованием бинарного дерева.

Слайд 19


Описание элемента дерева // Ex10_3.cpp #include "stdafx.h" #include #include #include #define lim 100 struct top_ptr {int value; top_ptr *...
Описание слайда:
Описание элемента дерева // Ex10_3.cpp #include "stdafx.h" #include #include #include #define lim 100 struct top_ptr {int value; top_ptr * left; top_ptr * right;}; int next_number; top_ptr * r,*pass;

Слайд 20


Основная программа int main(int argc,char argv[]) { r=NULL; puts(“input value or 1000 for end”); scanf(“%d”,&next_number); while(next_number!=1000) {...
Описание слайда:
Основная программа int main(int argc,char argv[]) { r=NULL; puts(“input value or 1000 for end”); scanf(“%d”,&next_number); while(next_number!=1000) { pass=new top_ptr; pass->value=next_number; pass->left=NULL; pass->right=NULL; Add1(&r,pass); scanf(“%d”,&next_number);‏ } puts(“===Result===”); Tree1(r); printf(“\n”); getch();return 0; }

Слайд 21


Нерекурсивная процедура построения дерева void Add1(top_pt **r,top_ptr *pass); {top_ptr *next,*succ; if(*r==NULL) *r=pass; else {succ=*r;...
Описание слайда:
Нерекурсивная процедура построения дерева void Add1(top_pt **r,top_ptr *pass); {top_ptr *next,*succ; if(*r==NULL) *r=pass; else {succ=*r; while(succ!=NULL) {next=succ; if(pass->valuevalue) succ=succ->left; else succ=succ->right; } if(pass->valuevalue next->left=pass; else next->right=pass; } }

Слайд 22


Рекурсивная процедура построения дерева void Add2(top_ptr **r,top_ptr *pass) { top_ptr * rr; rr=*r; if(rr==NULL) *r=pass; else if (pass->valuevalue)...
Описание слайда:
Рекурсивная процедура построения дерева void Add2(top_ptr **r,top_ptr *pass) { top_ptr * rr; rr=*r; if(rr==NULL) *r=pass; else if (pass->valuevalue) Add2(&rr->left,pass); else Add2(&rr->right,pass); }

Слайд 23


Нерекурсивная процедура обхода дерева void Tree1(top_ptr *r) { struct memo{ short int nom; top_ptr * adres[lim];} memo1; top_ptr * pass;...
Описание слайда:
Нерекурсивная процедура обхода дерева void Tree1(top_ptr *r) { struct memo{ short int nom; top_ptr * adres[lim];} memo1; top_ptr * pass; memo1.nom=-1; pass=r;

Слайд 24


Нерекурсивная процедура обхода дерева (2)‏ while ((pass!=NULL)||(memo1.nom!=-1)) if (pass!=NULL) { if( memo1.nom==lim-1) { puts(" Error...
Описание слайда:
Нерекурсивная процедура обхода дерева (2)‏ while ((pass!=NULL)||(memo1.nom!=-1)) if (pass!=NULL) { if( memo1.nom==lim-1) { puts(" Error lim"); exit(1);} memo1.nom=memo1.nom+1; memo1.adres[memo1.nom]=pass; pass=pass->left; } else{ pass=memo1.adres[memo1.nom]; memo1.nom=memo1.nom-1; printf("%4d\n",pass->value); pass=pass->right;} }

Слайд 25


Рекурсивная процедура обхода дерева void Tree2(top_ptr *r) { if(r!=NULL) { Tree2(r->left); printf("%4d",r->value); Tree2(r->right); } }
Описание слайда:
Рекурсивная процедура обхода дерева void Tree2(top_ptr *r) { if(r!=NULL) { Tree2(r->left); printf("%4d",r->value); Tree2(r->right); } }



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