Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Методы модификации списка

Читайте также:
  1. I. Методы исследования в акушерстве. Организация системы акушерской и перинатальной помощи.
  2. Абстрактные методы и классы
  3. Абстрактые классы, виртуальные методы. Наследование и замещение методов.
  4. Альтернативные методы обработки
  5. Ассоциативные методы оценки семантических полей
  6. Бесконтактные методы и средства измерений
  7. Билет 11 вопрос 1. Прямые методы оптимизации. Интервал неопределённости, сущность принципа минимакса и выбор оптимальной стратегии поиска.

Метод Insert добавляет новый элемент в конец списка и увеличивает длину на 1. Если при этом превышается размер массива listiem, то метод выводит сообщение об ошибке и завершает программу. Ограничение на размер списка снимается в главе 9, класс реализуется с использованием связанного списка.

                       
           


5 3 22 45 23 8

                           
           
 
             

 


вставка(10) 5 3 22 45 23 8 10

                           
             

 

 


Элемент Delete определяет первое появление в списке заданного элемента. Функция требует, чтобы был определён оператор сравнения (==) для DataType. В некоторых случаях для этого может потребоваться, чтобы пользователь предоставил особую функцию, переопределяет оператор == для конкретного DataType. Эта тема формально излагается в главе 6. Если элемент не обнаруживается при индексе i, операция спокойно заканчивается без изменения списка. Если элемент найден, он удаляется из списка перемещением всех элементов с индексами i+1 к концу списка влево на одну позицию.

 

0 1 i i+1 i+2 i+3

           
     


 

Например, удаление элемента со значением 45 из списка приведёт к смещению влево хвостовых элементов 23 и 8. Длина списка изменяется с 6 на 5. Удаление элемента со значением 30 оставляет список неизменным.

 

5 3 22 45 23 8

                         
           
 
   
     
 

 


5 3 22 23 8

                     
         
 
   

 


Delete

// поиск и удаление элемента item из списка

void SeqList:: Delete (const DataType& item)

{

int i = 0;

// поиск элемента

while (i < size &&! (item = = listitem[ i ]))

i++;

if (i < size)

{

// передвинуть хвост списка на одну позицию влево

while (i < size-1)

{

listitem [ i ] = listitem [ i + 1];

i ++;

}

size--; // уменьшение size на 1

}

}

Методы доступа к списку. Метод GetData возвращает значение данных в позицию pos в списке. Если pos не находится в диапазоне от 0 до size-1, печатается сообщение об ошибке, и программа завершается.

 

// возвращает значение элемента списка для индекса pos. если pos

// не находится в диапазоне индексов списка, программа заканчивается

// с сообщением об ошибке


Дата добавления: 2015-07-15; просмотров: 71 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Вычеркнули Добавили| DataType SeqList : : GetData ( int pos ) const

mybiblioteka.su - 2015-2024 год. (0.009 сек.)