🗊Презентация Абстрактный тип данных. Список

Нажмите для полного просмотра!
Абстрактный тип данных. Список, слайд №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

Содержание

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

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


Слайд 1





Абстрактный тип данных список
Описание слайда:
Абстрактный тип данных список

Слайд 2





Операции над абстрактным Списком
CreateList(List) - создает пустой список List
DeleteList(List) – уничтожает список List
IsEmpty(List) – определяет пуст ли список List
Insert(index, NewElement, List) - вставляет новый элемент NewElement в список List на позицию index
Remove(index, List) – удаляет элемент списка, находящийся в позиции index
Описание слайда:
Операции над абстрактным Списком CreateList(List) - создает пустой список List DeleteList(List) – уничтожает список List IsEmpty(List) – определяет пуст ли список List Insert(index, NewElement, List) - вставляет новый элемент NewElement в список List на позицию index Remove(index, List) – удаляет элемент списка, находящийся в позиции index

Слайд 3





Операции над абстрактным Списком
TypeItem Retrive(index, List) – возвращает элемент, находящийся в позиции index
Getlength(List) – возвращает количество элементов в списке List
Pos Find(List, Element)- возвращает позицию элемента Element 
(Pos может быть как номером элемента, так и указателем на некоторый элемент)
Описание слайда:
Операции над абстрактным Списком TypeItem Retrive(index, List) – возвращает элемент, находящийся в позиции index Getlength(List) – возвращает количество элементов в списке List Pos Find(List, Element)- возвращает позицию элемента Element (Pos может быть как номером элемента, так и указателем на некоторый элемент)

Слайд 4





Реализация списков
Необходимо определить тип элементов и понятия «позиция» элемента:

typedef   int  TypeItem – тип элемента может быть как простым, так и сложным
typedef int Pos – в данном случае позицией элемента будет его номер в списке
Описание слайда:
Реализация списков Необходимо определить тип элементов и понятия «позиция» элемента: typedef int TypeItem – тип элемента может быть как простым, так и сложным typedef int Pos – в данном случае позицией элемента будет его номер в списке

Слайд 5





Реализация списков посредством массивов
При реализации с помощью массивов все элементы списка располагаются в смежных ячейках, причем у каждого элемента определен номер.
 Это позволяет легко просматривать список, вставлять и удалять элементы в начало и в конец списка. 
Однако, вставка элемента в середину списка потребует от нас сдвинуть все остальные элементы, также как удаление
Описание слайда:
Реализация списков посредством массивов При реализации с помощью массивов все элементы списка располагаются в смежных ячейках, причем у каждого элемента определен номер. Это позволяет легко просматривать список, вставлять и удалять элементы в начало и в конец списка. Однако, вставка элемента в середину списка потребует от нас сдвинуть все остальные элементы, также как удаление

Слайд 6





Реализация списков посредством массивов
Определяем максимальное количество элементов:
define max_list 100;// максимальное число элементов списка
Описание слайда:
Реализация списков посредством массивов Определяем максимальное количество элементов: define max_list 100;// максимальное число элементов списка

Слайд 7





Реализация списков посредством массивов
Описываем структуру List:
Struct List {
		 TypeItem Items [Max_ list]; //массив элементов списка
		 int last; //индекс следующего элемента
         }
Описание слайда:
Реализация списков посредством массивов Описываем структуру List: Struct List { TypeItem Items [Max_ list]; //массив элементов списка int last; //индекс следующего элемента }

Слайд 8





Реализация списков посредством массивов
Void CreateList(List L)
{ L.last=0;}
Описание слайда:
Реализация списков посредством массивов Void CreateList(List L) { L.last=0;}

Слайд 9


Абстрактный тип данных. Список, слайд №9
Описание слайда:

Слайд 10


Абстрактный тип данных. Список, слайд №10
Описание слайда:

Слайд 11


Абстрактный тип данных. Список, слайд №11
Описание слайда:

Слайд 12





Реализация списков с помощью указателей
В данном случае элементы списка не обязательно расположены в смежных ячейках, для связывания элементов используются указатели. 
Эта реализация освобождает нас с одной стороны от использования непрерывной области памяти
Нет необходимости перемещения элементов при вставке или удалении элемента в список. 
Необходима дополнительная память для хранения указателей.
Описание слайда:
Реализация списков с помощью указателей В данном случае элементы списка не обязательно расположены в смежных ячейках, для связывания элементов используются указатели. Эта реализация освобождает нас с одной стороны от использования непрерывной области памяти Нет необходимости перемещения элементов при вставке или удалении элемента в список. Необходима дополнительная память для хранения указателей.

Слайд 13





Реализация связанных списков с помощью указателей
Описание слайда:
Реализация связанных списков с помощью указателей

Слайд 14





Определение структуры List:
typedef struct celltype
{
   TypeItem Item;// элемент списка
	celltype *Next; // указатель на следующий элемент
}
typedef celltype *list;//
Описание слайда:
Определение структуры List: typedef struct celltype { TypeItem Item;// элемент списка celltype *Next; // указатель на следующий элемент } typedef celltype *list;//

Слайд 15





Описания необходимых типов и переменных
typedef int Pos;//позицией элемента будет его номер в списке
typedef celltype *Pos;// позицией элемента будет указатель на этот элемент
Описание слайда:
Описания необходимых типов и переменных typedef int Pos;//позицией элемента будет его номер в списке typedef celltype *Pos;// позицией элемента будет указатель на этот элемент

Слайд 16





Функции работы со списком
Void CreateList(List S)//создание пустого списка
{ S=new celltype;
   S->next=NULL;
 }
Описание слайда:
Функции работы со списком Void CreateList(List S)//создание пустого списка { S=new celltype; S->next=NULL; }

Слайд 17





void Insert (TypeItem x, Pos n, list S)
void Insert (TypeItem x, Pos n, list S)
 {list temp, current;
	temp=S; 	current=S->Next;
   Pos i=1;
	while(current!=0)
	{if (i==n)
		{temp=new celltype; 
		  temp->Next=current->Next;
		  temp->Item=x; 
		  current->Next=temp;   		
		  break;}
Описание слайда:
void Insert (TypeItem x, Pos n, list S) void Insert (TypeItem x, Pos n, list S) {list temp, current; temp=S; current=S->Next; Pos i=1; while(current!=0) {if (i==n) {temp=new celltype; temp->Next=current->Next; temp->Item=x; current->Next=temp; break;}

Слайд 18





	i++;
	i++;
 current=current->next;
}//end while
}//end of insert
Описание слайда:
i++; i++; current=current->next; }//end while }//end of insert

Слайд 19





void Remove (Pos n, list S)
void Remove (Pos n, list S)
 {list current=S->Next, temp;
	
	Pos i=1;
	while(current!=NULL && i<n)
	{ current=current->next;i++;)
   if(i==n){	
  temp=current->next;
	current->next=current->next->next;
	delete temp;}
	}//end
Описание слайда:
void Remove (Pos n, list S) void Remove (Pos n, list S) {list current=S->Next, temp; Pos i=1; while(current!=NULL && i<n) { current=current->next;i++;) if(i==n){ temp=current->next; current->next=current->next->next; delete temp;} }//end

Слайд 20





Pos Find (TypeItem x, list S)
Pos Find (TypeItem x, list S)
{list temp;
		Pos i=1;
if (S->Next==NULL) cout<<‘List Null’;	
else {
temp=S->Next;
while(temp->Next!=NULL)
	{if (temp->Item==x) return (i); 
     temp=temp->next;i++;}
return (0);}	
}//end
Описание слайда:
Pos Find (TypeItem x, list S) Pos Find (TypeItem x, list S) {list temp; Pos i=1; if (S->Next==NULL) cout<<‘List Null’; else { temp=S->Next; while(temp->Next!=NULL) {if (temp->Item==x) return (i); temp=temp->next;i++;} return (0);} }//end

Слайд 21





TypeItem Retrive (Pos n, list S)
TypeItem Retrive (Pos n, list S)
{list temp;
		Pos i=1;
if (S->Next==NULL) cout<<‘List Null’;	
else {
temp=S->Next;
while(temp->Next!=NULL)
	{if (i==n) return (temp->Item); 
     temp=temp->next;i++;}
return (0);}	
}//end
Описание слайда:
TypeItem Retrive (Pos n, list S) TypeItem Retrive (Pos n, list S) {list temp; Pos i=1; if (S->Next==NULL) cout<<‘List Null’; else { temp=S->Next; while(temp->Next!=NULL) {if (i==n) return (temp->Item); temp=temp->next;i++;} return (0);} }//end

Слайд 22





TypeItem Retrive (Pos n, list S)
TypeItem Retrive (Pos n, list S)
{list temp;
		Pos i=1;
if (S->Next==NULL) cout<<‘List Null’;	
else {
temp=S->Next;
while(temp->Next!=NULL)
	{if (i==n) return (temp->Item); 
     temp=temp->next;i++;}
return (0);}	
}//end
Описание слайда:
TypeItem Retrive (Pos n, list S) TypeItem Retrive (Pos n, list S) {list temp; Pos i=1; if (S->Next==NULL) cout<<‘List Null’; else { temp=S->Next; while(temp->Next!=NULL) {if (i==n) return (temp->Item); temp=temp->next;i++;} return (0);} }//end

Слайд 23





Сравнение реализаций
Реализация списков с помощью массивов требует указания максимального размера массива до начала выполнения программы
Если длина списка заренее не известка, более рациональным способом будет реализация с помощью указателей.

Процедуры INSERT и DELETE в случае связных списков выполняются за конечное число шагов для списков любой длины.
Описание слайда:
Сравнение реализаций Реализация списков с помощью массивов требует указания максимального размера массива до начала выполнения программы Если длина списка заренее не известка, более рациональным способом будет реализация с помощью указателей. Процедуры INSERT и DELETE в случае связных списков выполняются за конечное число шагов для списков любой длины.

Слайд 24





Сравнение реализаций
Реализация списков с помощью массивов расточительна с точки зрения использования памяти, которая резервируется сразу. 
При использовании указателей необходимо место в памяти для них тоже.
  
При использовании указателей нужно работать очень аккуратно. Поэтому в различных случаях бывают более выгодны одни или другие реализации.
Описание слайда:
Сравнение реализаций Реализация списков с помощью массивов расточительна с точки зрения использования памяти, которая резервируется сразу. При использовании указателей необходимо место в памяти для них тоже. При использовании указателей нужно работать очень аккуратно. Поэтому в различных случаях бывают более выгодны одни или другие реализации.

Слайд 25





Двусвязные списки
Используются в приложениях, где необходимо организовать эффективное перемещение по списку как  прямом, так и в обратном направлениях
Описание слайда:
Двусвязные списки Используются в приложениях, где необходимо организовать эффективное перемещение по списку как прямом, так и в обратном направлениях

Слайд 26





Двусвязные списки
Описание слайда:
Двусвязные списки

Слайд 27





Описание структуры списка
typedef struct celltype
{
   TypeItem Item;// элемент списка
	celltype *Next; // указатель на 						следующий элемент
	celltype *Previous; // указатель на 				предыдущий элемент
}
typedef celltype *list;//
Описание слайда:
Описание структуры списка typedef struct celltype { TypeItem Item;// элемент списка celltype *Next; // указатель на следующий элемент celltype *Previous; // указатель на предыдущий элемент } typedef celltype *list;//



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