with ada.strings.unbounded, ustrings; use ada.strings.unbounded, ustrings; package dicc is type diccionario is limited private; -- permite almacenar en memoria dinámica un diccionario de palabras junto con -- sus definiciones procedure vacio(d:out diccionario); procedure busca(d:in diccionario; palabra:in ustring; definicion:out ustring); procedure inserta(d:in out diccionario; palabra,definicion:in ustring); procedure borra(d:in out diccionario; palabra:in ustring); --procedure asignar(dout:out diccionario; din:in diccionario); --post: dout=din, duplicando la representación en memoria --function "="(d1,d2:in diccionario) return boolean; --post: d1=d2 si y sólo si son iguales sus representaciones en memoria --procedure liberar(d:in out diccionario); --post: d=diccionario vacío, y además libera la memoria utilizada por d private type unDato; type ptDato is access unDato; type unDato is record clave:ustring; info:ustring; sig:ptDato; end record; type diccionario is new ptDato; -- el tipo diccionario se representará en memoria dinámica como una lista -- de registros enlazados mediante punteros de manera que las palabras se -- mantengan ordenadas por orden alfabético en la lista end dicc;