de POS.Note que este passo especial funcionar ate mesmo se o elemento for o unico da lista, pois neste caso o proximo e igual a NULO , e com a exclusao deste elemento o descritor passa ser ser NULO, o que indica uma lista vazia. INICIOARGUMENTOSLISTA : MATRIZ [ N ] DE REG_LISTA {DECLARACAO DA LISTA }N : INTEIRO {QUANTIDADE DE ELEMENTOS DA LISTA}DESCRITOR: INTEIRO { POSICAO DE INICIO DA LISTA}VARIAVEISREG_LISTA : REGISTROLETRA:CHAR {DECLARACAO DO REGISTRO DA LISTA }PROXIMO : INTEIROFIM_REGISTROPOS:INTEIROANT:INTEIROELEMENTO: CHARPROCEDA EXCLUSAO_ENCAMOSTRE ( DIGITE A LETRA PARA EXCLUSAO)LEIA ( ELEMENTO)ANT: =NULOPOS: =DESCRITORENQUANTO POS < > NULO E LISTA[POS].LETRA < > ELEMENTO ANT: = POSPOS : = LISTA[ POS ]. PROXIMOFIM_ENQUANTOSE POS = NULO MOSTRE ( EXCLUSAO INVALIDA)SENAOSE ANT = NULODESCRITOR : = LISTA [POS] . PROXIMOSENAOLISTA[ ANT ].PROXIMO : = LISTA[ POS ].PROXIMOFIM_SELISTA[ POS ].LETRA : = NULOLISTA[ POS ].PROXIMO : = NULO FIM_SEFIM. Lista Duplamente Encadeadas.A lista duplamente encadeada tem como caracteristica o fato de que cada elemento possui dois ponteiros. O primeiro indica o sucessor do elemento , e o segundo o seu antecessor.No caso das listas duplamente encadeadas, o descritor tera duas informacoes: O primeiro elemento da lista O ultimo elemento da lista.Para que possamos representar ambas esta informcoes o registro passara a se declado como um registro, da seguinte forma:DESCRITOR : REGISTROINICIO : INTEIROFINAL : INTEIROFIM_REGISTROPara que possamos trabalhar com lista duplamente encadeadas, nos deveremos incluir um novo campo no registro usado para montar a matriz que servira para armazenar a lista. Este novo campo vai conter o endereco fisico do elemento anterior ao elemento atual. Da mesma forma , na lista duplamente encadeada ainda vai existir o ponteiro que indica qual e a proxima posicao do elemento atual. REG_LISTA:REGISTROANTERIOR:INTEIROLETRA:CHARPROXIMO:INTEIROFIM_REGISTRONote que com estas informacoes voce podera escolher em que ordem voce deseja trabalhar com a lista, ela pode ser crescente ou decrescente. Atravessamento em Lista Duplamente Encadeadas.O atravessamento em listas duplamente encadeadas e muito parecido com o atravessamento em lista encadeadas, com a diferenca que voce podera escolher a ordem em qual a lista sera atravessada.Para este fim sera incluido um novo argumento chamado ORDEM, que devera indicar a ordem do atravessamento.O atravessamento em ordem crescente comeca pelo DESCRITOR.INICIO, e vai sempre pelo PROX ate chegar ao final da lista. Ja o atravessamento em ordem descrescente comeca pelo DESCRITOR.FINAL e vai sempre pelo ANT ate chegar ao inicio da Lista.Note que de qualquer forma o final ou o inicio da lista vai ser identificado por um valor NULO nos ponteiros, pois o PROX da ultima LETRA da lista sera NULO da mesma forma que o ANT da primeira letra.INICIOARGUMENTOLISTA : MATRIZ [ N ] DE REG_LISTA {DECLARACAO DA LISTA }DESCRITOR : REGISTRO {DECLARACAO DO DESCRITOR}INICIO: INTEIROFINAL : INTEIROFIM_REGISTRON : INTEIRO {NUMERO DE ELEMENTOS DA LISTA}ORDEM : CHAR {INDICA A ORDEM DE ATRAVESSAMENTO} {"C"=>ORDEM CRESCENTE} {"D"=>ORDEM DECRESCENTE}VARIAVEISREG_LISTA : REGISTROANTERIOR: INTEIROLETRA:CHAR {DECLARACAO DO REGISTRO DA LISTA }PROXIMO : INTEIROFIM_REGISTROCONT: INTEIRO {VARIAVEL DE CONTROLE DO LOOP}PROCEDA ATRAVESSAMENTO_DUPLA_ENCASE ORDEM = "C"CONT: = DESCRITOR . INICIOSENAOCONT : = DESCRITOR . FINALFIM_SEENQUANTO CONT < > NULOMOSTRE LISTA [ CONT ].LETRASE ORDEM = "C