Esta lista deverá ser entregue no dia 4/4. As questões marcadas com ** não precisam estar 100% certas para a lista valer.
Nao use funções como reverse para fazer a questão 2, por exemplo. Defina a função l1-2 usando recursao etc.
Vamos definir profundidade de um atomo em uma lista como sendo:
Ex: a profundidade de a na lista ((a) b c) é 2 pois a e' um elemento de um elemento da lista.
Da mesma forma podemos definir a profundidade de uma sublista em um lista. Assim a sublista (b c) tem profundidade 2 na lista (a ((b c) d) e)
Outra forma de pensar nisso é ver a lista (de listas) como sendo uma arvore.
A lista (a ((b c) d) e) pode ser vista como uma arvore
Vamos definir a profundidade de uma lista como sendo a profundidade de seu atomo mais profundo.
Ex: (l1-1 '( e r t (w q) )) retorna 4
Ex: (l1-2 '(e r t (w q))) retorna ((w q) t r e)
Ex: (l1-3 '(e r t (w q))) retorna 5
(l1-3 '( (e) (r t) (w (w (r))))) -> 6
Ex: (l1-4 '((e r) t (w q))) -> ((q w) t (r e))
Ex: (l1-5 '((a b) (c) (c (e f))) '(e f)) -> T
(l1-5 '((a b) (c) (c (e f))) '(c (e f))) -> T
(l1-5 '((a b) (c) (c (e f))) '(c e f)) -> NIL
Ex: (l1-6 '((a b) (c) (c (e f) g )) 2) -> ((a b) (c) (c () g))
(l1-6 '(a b c) 2) -> (a b c)
(l1-6 '((a b) (c) (c (e f) g )) 1) -> ( () () () )
( chave valor subarvore-a-esquerda subarvore-a-direita)
assim (4 a (2 b (1 h nil nil) (3 c nil nil)) (7 a nil (9 g nil nil))) representa a arvore:
Ex: se a arvore acima esta armazenada no atomo xx entao: (l1-7 xx 2) retorna (por exemplo) (4 a (1 h nil (3 c nil nil)) (7 a nil (9 g nil nil)))