Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Требуется помощь с Линейными списками! / 2 сообщений из 2, страница 1 из 1
24.03.2013, 20:15
    #38196629
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь с Линейными списками!
У меня есть алгоритм удаления элемента по ключу в линейном двусвязном списке.Как сделать это в односвзяном?

Код: plaintext
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.
28.
29.
30.
31.
32.
33.
void lds::del()
{clrscr();
lds *r;lds *ptr;
int key;
cout<<"\n Vvedite kluch elementa dlya udaleniya";
cin>>key;
r=p;
while(r!=NULL&&r->b!=key)
r=r->next;
if(r->b==key)
{if(r->prev!=NULL&&r->next!=NULL) //Проверка что элемент не первый и не последний
{ptr=r->next;
r->prev->next = r->next;          //удаляем информацию предыдущего о текущем, заменой на инфу о следующем
r->next->prev = r->prev;          //следующего о текущем заменой на предыдущий
delete(r);                        //удаляем текущий
r=ptr;}
else
    {if(r->prev==NULL)            //проверка на первый элемент
       {p=p->next;                //меняем наш P на следующий
    delete(r);                //удаляем текущий элемент
    p->prev=NULL;             //удаляем инфу о предыдущем элементе(из следующего)
    r=p;                      //меняем текущий на следующий
       }
     else
    {r->prev->next=NULL;      //удаляем инфу предыдущего элемента о его следущем(о текущем)
     delete(r);               //удаляем текущий элемент
     r=p;
    }
    }
}
getch();
}
 
...
Рейтинг: 0 / 0
25.03.2013, 01:26
    #38196755
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь с Линейными списками!
fuzz,

Бежать про списку, помнить все время ссылку на предыдущую ноду (узел).
Как нашел нежный элемент — он удаляется, а предыдущий перессылается на следующий, память удаляется, для самой ноды и для данных, если они динамические и список ими владеет.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Требуется помощь с Линейными списками! / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]