Содержание
- 2. Операции над абстрактным Списком CreateList(List) - создает пустой список List DeleteList(List) – уничтожает список List IsEmpty(List)
- 3. Операции над абстрактным Списком TypeItem Retrive(index, List) – возвращает элемент, находящийся в позиции index Getlength(List) –
- 4. Реализация списков Необходимо определить тип элементов и понятия «позиция» элемента: typedef int TypeItem – тип элемента
- 5. Реализация списков посредством массивов При реализации с помощью массивов все элементы списка располагаются в смежных ячейках,
- 6. Реализация списков посредством массивов Определяем максимальное количество элементов: define max_list 100;// максимальное число элементов списка
- 7. Реализация списков посредством массивов Описываем структуру List: Struct List { TypeItem Items [Max_ list]; //массив элементов
- 8. Реализация списков посредством массивов Void CreateList(List L) { L.last=0;}
- 9. Viod Insert(int n,TypeItem NewItem,List L) { if (L.last>=100) cout else if (n>L.last || n else {for
- 10. Viod Remove(int n, List L) { if (n>L.last || n cout else {L.last=L.last-1; for (i=n; i
- 11. Pos Find(TypeItem x, List L) {for (i=n; i if (L.Items[i]=x) return(i); return(L.last+1);//х не найден } //end
- 12. Реализация списков с помощью указателей В данном случае элементы списка не обязательно расположены в смежных ячейках,
- 13. Реализация связанных списков с помощью указателей информационная часть ссылочная часть – указатель на следующий элемент
- 14. Определение структуры List: typedef struct celltype { TypeItem Item;// элемент списка celltype *Next; // указатель на
- 15. Описания необходимых типов и переменных typedef int Pos;//позицией элемента будет его номер в списке typedef celltype
- 16. Функции работы со списком Void CreateList(List S)//создание пустого списка { S=new celltype; S->next=NULL; }
- 17. void Insert (TypeItem x, Pos n, list S) {list temp, current; temp=S; current=S->Next; Pos i=1; while(current!=0)
- 18. i++; current=current->next; }//end while }//end of insert
- 19. void Remove (Pos n, list S) {list current=S->Next, temp; Pos i=1; while(current!=NULL && i { current=current->next;i++;)
- 20. Pos Find (TypeItem x, list S) {list temp; Pos i=1; if (S->Next==NULL) cout else { temp=S->Next;
- 21. TypeItem Retrive (Pos n, list S) {list temp; Pos i=1; if (S->Next==NULL) cout else { temp=S->Next;
- 22. TypeItem Retrive (Pos n, list S) {list temp; Pos i=1; if (S->Next==NULL) cout else { temp=S->Next;
- 23. Сравнение реализаций Реализация списков с помощью массивов требует указания максимального размера массива до начала выполнения программы
- 24. Сравнение реализаций Реализация списков с помощью массивов расточительна с точки зрения использования памяти, которая резервируется сразу.
- 25. Двусвязные списки Используются в приложениях, где необходимо организовать эффективное перемещение по списку как прямом, так и
- 26. Двусвязные списки информационная часть указатель на предыдущий элемент указатель на следующий элемент
- 28. Скачать презентацию