Return true;

}

 

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

- удалить все вхождения символа ‘Ы‘,

- заменить всюду '?' на '!'

- после каждого вхождения символа 'А' добавить символ 'Б'.

Поскольку предстоит выполнение удалений, в алгоритме будут использованы два рабочих указателе – на текущий элемент и на его предшественника. На начало списка указывает NODE *h. Первый узел списка не обрабатывается (см. далее "голова списка").

NODE *p1, *p2, *x;

for(p1=h,p2=p1->Next; p2!=NULL;p1=p1->Next,p2=p1->Next){

switch(p2->Letter){

case ‘Ы’:

p1->Next=p2->Next;

Delete p2;

Break;

case ‘?’:

p2->Letter=’!’

Break;

case ‘А’:

x=new NODE;

x->Letter=’Б’;

x->Next=p2->Next;

} // switch

} // for

Голова списка

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








Дата добавления: 2014-12-02; просмотров: 816;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.