Составители:
Рубрика:
48 Глава 4. Нелинейные структуры данных
// Нерекурсивная реализация обхода в обратном порядке
template <class DataT>void tree<DataT>::btree2(tree<DataT> *t)
{
stack <tree<DataT>*> x(100);
tree<DataT> *p;
p=t;
m: while(p!=NULL)
{
x.push(p);
p=p->llink;
}
if(!x.empty()) // если стек непуст
{
p=x.pop(); // выталкиваем p
cout<<p->info;
p=p->rlink;
goto m;
}
}
// Нерекурсивная реализация обхода в прямом порядке
template<class DataT>void tree<DataT>::btree3(tree<DataT> *t)
{
stack<tree<DataT>*> s(100);
tree<DataT> *p;
p=t;
s.push(p);
while(!s.empty())
{
p=s.pop();
cout<<p->info;
cout<<"\n";
if (p->rlink!=NULL)
s.push(p->rlink);
if (p->llink!=NULL)
s.push(p->llink);
}
48 Глава 4. Нелинейные структуры данных // Нерекурсивная реализация обхода в обратном порядке templatevoid tree ::btree2(tree *t) { stack *> x(100); tree *p; p=t; m: while(p!=NULL) { x.push(p); p=p->llink; } if(!x.empty()) // если стек непуст { p=x.pop(); // выталкиваем p cout< info; p=p->rlink; goto m; } } // Нерекурсивная реализация обхода в прямом порядке template void tree ::btree3(tree *t) { stack *> s(100); tree *p; p=t; s.push(p); while(!s.empty()) { p=s.pop(); cout< info; cout<<"\n"; if (p->rlink!=NULL) s.push(p->rlink); if (p->llink!=NULL) s.push(p->llink); }
Страницы
- « первая
- ‹ предыдущая
- …
- 46
- 47
- 48
- 49
- 50
- …
- следующая ›
- последняя »