Создание однонаправленного списка
Для того, чтобы создать список, нужно создать сначала первый элемент списка, а затем в цикле добавить к нему остальные элементы. Добавление может выполняться как в начало, так и в конец списка.
//создание однонаправленного списка
//добавление в конец
point* make_list(int n) {
point*beg;//указатель на первый элемент
point*p,*r;//вспомогательные указатели
beg=new(point);//выделяем память под первый элемент
cout<<"\n?";
cin>>beg->data;//вводим значение информационного поля
beg->next=0;//обнуляем адресное поле
//ставим на этот элемент указатель p (последний элемент)
p=beg;
for(int i=0;i<n-1;i++) {
r=new(point);//создаем новый элемент
cout<<"\n?";
cin>>r->data;
r->next=0;
p->next=r;//связываем p и r
//ставим на r указатель p (последний элемент)
p=r;
}
return beg;//возвращаем beg как результат функции
}
Печать однонаправленного списка
Для обработки списка организуется цикл, в котором нужно переставлять указатель p с помощью оператора p=p->next на следующий элемент списка до тех пор, пока указатель p не станет равен 0, т. е. будет достигнут конец списка.
void print_list(point* beg) {
//печать списка
point* p=beg;//начало списка
while(p!=0) {
cout<<p->data<<"\t";
p=p->next;//переход к следующему элементу
}
}
Дата добавления: 2015-02-16; просмотров: 582;