ВУЗ:
Составители:
Рубрика:
beg
pred key next
Рис. 27. Двунаправленный список
Пример 107. Создать двунаправленный список, выполнить удале-
ние элемента с заданным номером, добавление элемента с заданным но-
мером, печать полученных списков.
#include <iostream.h>
struct point//описание структуры
{
int key;//ключевое поле
point* pred,*next;//адресные поля
};
point*make_list()
{
int n;
cout<<«n-?»;cin>>n;
point *p,*r,*beg;
p=new (point);//создать первый элемент
beg=p;/*запомнить адрес в переменную beg, в ко-
торой хранится начало списка*/
cout<<«key-?»;cin>>p->key;/*заполнить ключевое
поле*/
p->pred=0;p->next=0;//запомнить адресные поля
for(int i=1;i<n;i++)/*добавить элементы в конец
списка*/
{
r=new(point);//новый элемент
cout<<«key-?»;cin>>r->key;//адресное поле
p->next=r;//связать начало списка с r
r->pred=p;//связать r с началом списка
r->next=0;/*обнулить последнее адресное
поле*/
p=r;/*передвинуть p на последний элемент
списка*/
}
return beg;//вернуть первый элемент списка
}
190
Страницы
- « первая
- ‹ предыдущая
- …
- 188
- 189
- 190
- 191
- 192
- …
- следующая ›
- последняя »
