(5,x): bool esCircuito(listvertices) que retorna

Anuncio
Universidad Nacional de Colombia
Examen Final de Estructuras de Información. 2006-1. Grupo 6.
Fecha: 6/Jul/2006
1. Empleando la plantilla de clase parejaa presentada
template <class T1, class T2>
se desea que el siguiente código funcione e imprima
class pareja {
(5,x):
public: T1 primero;
T2 segundo;
pareja():primero(),segundo() {}
int main() {
pareja(const T1 &a, const T2 &b):
pareja<int,char> p;
primero(a), segundo(b) {}
p=hacer_pareja<int,char>(5,'x');
pareja<T1,T2> &operator=(const
cout<<p;
pareja<T1, T2> &p) {
}
primero=p.primero;
segundo=p.segundo;
a) Implemente la plantilla de función hacer_pareja
return (*this);
(análoga a la función de STL make_pair).
}
b) Sobrecargue el operador << para que opere obje};
tos de la clase pareja
template <class T>
stack<T> op(const stack<T> &s)
2. ¾Qué imprime el siguiente programa que emplea plan{
tillas mostradas a la izquierda?
priority_queue<T> q;
stack<T> t=s;
int main() {
while (!t.empty()) {
stack<double> s;
q.push(t.top());
s.push(10.0); s.push(3.2);
t.pop();
s.push(-5.1); s.push(4.0);
}
stack<double> r=op<double>(s);
stack<T> r;
cout<<r;
while (!q.empty()) {
}
r.push(q.top());
q.pop();
3. Un montículo por mayores es análogo al montículo es}
tudiado en clase, pero mantiene el máximo elemento
return r;
}
en la raíz y los menores en las hojasb . En un montículo
template <class T>
por mayores inicialmente vacío se insertan consecutistd::ostream &operator<<(
vamente los elementos 4.0, -5.1, 3.2, 10, 2, dibuje el
std::ostream &os,
montículo resultante tras cada inserción
const stack<T> &s)
{
4. Complete la plantilla de clase NodoArbin con el méstack<T> t=s;
todo bool esAVL() que retorne verdadero si y solo
string ant("");
sí el árbol es AVL (implemente también los métodos
os<<"< ";
auxiliares que requiera).
while (!t.empty()) {
os<<ant<<t.top();
5. La plantilla de clase Grafo<T,E> adjunta implemenant=", ";
ta un grafo dirigido con etiquetas (los nodos están
t.pop();
indexados y tienen datos diferentes de tipo T; los ar}
cos tienen etiquetas de tipo E). Complete el método
os<<" |";
bool esCircuito(list<int>vertices) que retorna
return os;
verdadero si y sólo si los índices de vertices que recibe
}
conforman un circuito. Es decir si hay arco entre el
template <class T>
primero y el segundo, si hay arco entre el segundo y el
class NodoArbin {
tercero, ... si hay arco entre el penúltimo y el último
public: T dato;
NodoArbin<T> *izq, *der;
y si hay arco entre el último y el primero.
NodoArbin(T d) : dato(d),
a Es análoga a la clase pair estándar de STL e implementada en
izq(NULL),
utility.
der(NULL) {}
b En cierta implementación de STL el adaptador priority_queue
}
está implementado sobre un montículo por mayores.
1
Descargar