Está en la página 1de 65
Introducci6én Se han estudiado los ntimeros y los simbolos y se han construido estructuras 4s complejas con estos elementos denominadas listas. En el presente capitulo s Pages ni mi uilizardn estructuras atin mas complejas, grupos de listas 0 bien fistas de se listas. Laprincipal raz6n para utilizar estas nuevas estructuras es que nos permitiran un mayor nivel de abstraccién. De esta forma se podran representar modelos de datos més complejos tales como los conjuntos, vectores, matrices y drboles Los conjuntos, vectores y matrices son estructuras muy usadas en matematica. Los arboles son una representaci6n jerarquica muy utilizada en computacién. Se estudiardn las técnicas de representacién y se desarrollardn algoritmos que permitan construir nuevas abstracciones. Ademis se construirén procesos para su creacién, modificacién y eliminacién. Representacion de los conjuntos El concepto de conjunto es fundamental en las matemdaticas. Un conjunto ¢s una coleccién de objetos. Estos objetos se suelen llamar los elementos del conjunto. Las listas se pueden utilizar para representar conjuntos matematicos. De esta forma se utiliza la siguiente notaci6n. % Para representar el conjunto vacio denominado en matemitica por el simbolo } se utilizaré la lista nula denominada por( ). { _— , 6 _ Lntraduccion 4 la prosramaci =e i ra representar un conjunto cualquiera de la form: fel. €2, ... EN} se utilizard una lista de la forma: (el e2 ... eN) Al igual que con los eonjuntos matemiticos, los conjuntos en Sche ME debe, 0 cumplir las siguientes condiciones. a) No deben tener elementos repetidos. b) No existe ninguna relacién de orden entre sus elementos. ¢) Por lo tanto, dos conjuntos son iguales si tienen los mismos elem entos, importar el orden en el que se encuentren. sin Con la notacién definida un conjunto de la form: } se escribird como ( ). {a. b, c}se escribird (a b c). {1. 2. 3, 4, 5} se escribiré como (1 2 3 4 5). Tal como en matemética: —{1, 2, 3, 4, 5) es igual a (2, 3, 5, 4, 1) En Scheme se supondré que: (1 2 3 4 5) es igual a (2.35 41) Identificaci6n de conjuntos Se construiré una funcién denominada (conjunto? lista). Esta funcién recibe como argumento un conjunto y verifica que efectivamente sea un conjunto. Basicamente debe revisar que no existan elementos repetidos. Debe producir los siguientes resultados: > (conjunto? ‘( )) Ht > (conjunto? ‘(a b c)) = ca > (conjunto? ‘(a b ¢ de) at er Seances cmt ; (conjunto? “(a bc cd e)) > if construir esta funcién Se pregunta primero si se trata de lista, en caso soe recorte el Conjunto Y se verifica que cada elemento se eneuenne gos camente und Vez en Ia epresentacin, Este proceso continua hasta re ae con el timo elemento. A continuacién se presenta el céigo, para Determina si se recibe 0 no conjunto Precondiciones: conjunto: lista lineal Identifica si una lista cumple Jas condiciones para ser un conjunto lista: una lista lineal de simbolos (define (conjunto lista) (cond ( (null? lista) a) ((miembro? (car lista) (cdr lista)) #f) (else (conjunto (cdr lista))))) Igualdad de conjuntos Se construiré una funcién denominada (equal-set? conjl conj2). Esta funci6n recibe como argumentos dos conjuntos, en caso que sean iguales devuelve en valor de #t, en caso contrario devuelve el valor de #f. A continuacién se presentan algunos ejemplos. > (equal-set? *() ‘()) Ht > (equal-set? “(1 2 3) “(1 2 3 4) if > (equal-set? ‘(1 2 3 4) “(1 23 5)) #f

También podría gustarte