Contenidor (estructura de dades)
En informàtica, un contenidor és una classe, una estructura de dades, o un tipus abstracte de dades (TDA) les instàncies del qual són col·leccions d'altres objectes. S'utilitzen per emmagatzemar objectes d'una forma organitzada i seguint unes normes específiques d'accés.
Normalment els contenidors implementen mètodes o operacions que realitzin les següents funcions:
- Un métode constructor per crear un nou contenidor buit
- Una operació per obtenir el nombre d'elements dins del contenidor
- Una operació per verificar si el contenidor està buit
- Una operació per afegir o inserir un nou element al contenidor
- Una operació per eliminar o treure un element del contenidor
- Una operació per buidar o eliminar tots els element del contenidor
- Un métode iterador per recórrer cada un dels elements continguts
Hi ha dos tipus de contenidors:
- Contenidors per valor: El contenidor emmagatzema còpies dels objectes que conté.
- Contenidors per referència: El contenidor només conté referències (normalment adreces de memòria) als objectes.
Exemple d'operacions comunes de tots els contenidors
[modifica]En general podem dir que tots els contenidors implementaran els següents mètodes:
- Informar del nombre d'elements de l'objecte (p. ex. el mètode nombreElements())
- Informar si la llista està buida (buida)
- Un mètode que retorni un objecte de tipus iterador
Un exemple d'especificació és el següent interfície del llenguatge de programació Java:
public interface Contenidor<E> { public boolean buit();
public int nombreElements();
public Iterador<E> elements(); }
En alguns casos es pot utilitzar una classe abstracta per implementar aquests mètodes.
Contenidors seqüencials
[modifica]Els contenidors seqüencials són aquells on l'ordre en què s'emmagatzemen els elements és important. La següent llista ens mostra els contenidors seqüencials més utilitzats:
Exemples de contenidors
[modifica]- String o tira de caràcters
- Llista
- Cua
- Pila o stack
- Array o vector
- Array associatiu o hash
- Conjunt o set
- Arbre