本文整理汇总了C++中Pila::desapila方法的典型用法代码示例。如果您正苦于以下问题:C++ Pila::desapila方法的具体用法?C++ Pila::desapila怎么用?C++ Pila::desapila使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pila
的用法示例。
在下文中一共展示了Pila::desapila方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: hangarDeVagones
void hangarDeVagones(const int &numeroVagones, Pila<int> &entrada, Lista<int> &secuenciaSalida) {
Pila<int> hangar;
bool resultado = true;
while( resultado && (! secuenciaSalida.esVacia() || ! hangar.esVacia()) ) {
// Si el elemento de la cima es igual que el primer elemento
// de la secuencia resultante lo sacamos de la pila.
if (hangar.esVacia() || (! entrada.esVacia() && hangar.cima() < secuenciaSalida.primero()) ) {
hangar.apila( entrada.cima() );
entrada.desapila();
}
else if (hangar.cima() == secuenciaSalida.primero() ) {
hangar.desapila();
secuenciaSalida.resto();
}
else if (hangar.cima() > secuenciaSalida.primero()) {
resultado = false;
}
}
if( resultado ) cout << "POSIBLE" << endl;
else cout << "IMPOSIBLE" << endl;
}
示例2: llaves
bool llaves(const char cadena[], int n, const char caracterAbertura, const char caracterCierre) {
Pila<int> colaAbiertos;
bool completos = true;
int i = 0;
int j = n-1;
while(i < n) {
if(cadena[i] == caracterAbertura) {
colaAbiertos.apila(cadena[i]);
} else if (cadena[i] == caracterCierre) {
try {
colaAbiertos.desapila();
} catch(EPilaVacia e) {
cout << e.msg() << endl;
}
}
i++;
}
if ( ! colaAbiertos.esVacia()) {
completos = false;
}
return completos;
}
示例3: main
int main() {
int wagons = -1, expected[10000];
int i;
while (wagons != 0) {
cin >> wagons;
for (i = 0; i < wagons; i++) {
cin >> expected[i];
}
int currentWagon = 1;
int expectedIndex = 0;
Pila<int> station;
while (currentWagon <= wagons) {
station.apila(currentWagon);
while (!station.esVacia()
&& station.cima() == expected[expectedIndex] &&
expectedIndex < wagons) {
station.desapila();
expectedIndex++;
}
currentWagon++;
}
if (station.esVacia())
cout << "POSIBLE" << endl;
else
cout << "IMPOSIBLE" << endl;
}
return 0;
}
示例4: main
int main() {
Pila<char> p;
char c = 'a';
while (c != '*'){ // Mientras no introduzca asterisco para terminar
cout << "> "; // Mostramos prompt
cin.get(c); // Leemos el primer caracter
if (c != '*'){ // Si no es el asterisco
while (c != '\n'){ // Mientras no haya fin de linea
p.apila (c); // Apilamos el caracter
cin.get(c); // Leemos el siguiente
}
while (!p.esVacia()){ // Mientras no se quede vacía la pila
cout << p.cima(); // Escribimos la cima de la pila
p.desapila(); // Desapilamos
}
}
cout << endl; // Añadimos un salto de linea final
}
return 0;
}