Sólo sé C avanzado, ¿puedo programar? No necesito aprender estructuras de datos.
#ifndef STACK_FLAG //STACK_H
#define STACK_FLAG //STACK_H
template class Tgt;
p>clase Pila
público:
Esta es la primera vez que escribo una plantilla de pila para una pila.
clase Pila
{
público:
Pila(vacío);
bool Push(T) ;
bool Pop(T amp;);
~Stack(void);
privado:
typedef struct Node p> p>
{
T datos;
estructura Nodo * enlace
}Nodo
Nodo * superior; ;
};
plantilla lt; clase Tgt; Stacklt;::Stack(void)
{
arriba = NULL;
}
plantilla lt; clase Tgt; bool Tgt;::Push(T num)
{
Nodo * p = nuevo Nodo;
if(!p)
return false; //manejo completo de la pila
else
{ p>
p -gt; datos = num;
p -gt; enlace = arriba
arriba = p
;
}
}
plantilla lt; class Tgt; bool Stack Tgt; :: Pop(T amp; num)
{
Nodo * p = top;
if(top == NULL)
return false; //manejo de pila vacía
else
{
num = p -gt;
arriba = p -gt
eliminar p; ;
return true;
}
}
plantilla lt; clase Tgt;::~Stack(void) )
{
}
#endif STACK_FLAG //STACK_H
El cartel original sabe C, por lo que no es difícil de entender. , así que no diré más a continuación. Es la estructura de datos más simple: lista vinculada
typedef struct Node
{
T data;
p>struct Node * link;
}Node;
Por supuesto, también puedes usar una matriz, pero la matriz debe tener un tamaño específico y debe ser grande. suficiente para evitar el desbordamiento, y cuando use una lista vinculada, puede usar nueva y eliminar en cualquier momento para abrir y liberar espacio. Pero es necesario evitar las pérdidas de memoria.
Por lo tanto, te recomendamos que aprendas a utilizarlo más adelante cuando tengas lo básico.