Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




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

В динамические структуры легко добавлять элементы, так как для этого достаточно изменить значения адресных полей. Операция вставки реализовывается аналогично функции вставки для однонаправленного списка, только с учетом особенностейдвунаправленного списка ( рис. 29.5).


Рис. 29.5.Добавление элемента в двунаправленный список

//вставка элемента с заданным номером в двунаправленный список

Double_List* Insert_Item_Double_List(Double_List* Head,

int Number, int DataItem){

Number--;

Double_List *NewItem=new(Double_List);

NewItem->Data=DataItem;

NewItem->Prior=NULL;

NewItem->Next = NULL;

if (Head == NULL) {//список пуст

Head = NewItem;

}

else {//список не пуст

Double_List *Current=Head;

for(int i=1; i < Number && Current->Next!=NULL; i++)

Current=Current->Next;

if (Number == 0){

//вставляем новый элемент на первое место

NewItem->Next = Head;

Head->Prior = NewItem;

Head = NewItem;

}

else {//вставляем новый элемент на непервое место

if (Current->Next != NULL) Current->Next->Prior = NewItem;

NewItem->Next = Current->Next;

Current->Next = NewItem;

NewItem->Prior = Current;

Current = NewItem;

}

}

return Head;

}


<== предыдущая страница | следующая страница ==>
Удаление однонаправленного списка | Удаление элемента из двунаправленного списка

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




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.002 сек.