Red de conocimiento informático - Espacio del host - Sólo sé C avanzado, ¿puedo programar? No necesito aprender estructuras de datos.

Sólo sé C avanzado, ¿puedo programar? No necesito aprender estructuras de datos.

Aquí está la plantilla que escribí para la pila:

#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>

{

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 -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.