Você está na página 1de 2

Algoritmo: C:\Users\leandromo\Documents\Particular\Faculdade\Algoritmo e Estrutura de Dados\Co nceito_Regras_Lista.

alg Data: 07/03/2013 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 Algoritmo "ListaGenerica" // Funo : Aprender conceitos de regras na criao de uma lista // Autor : Leandro Budau de Moraes // Data : 07/03/2013 // Seo de Declaraes //REGRAS // 1) Os dados so incluidos do lado esquerdo da lista // 2) A lista est cheia quando no h mais espao no vetor // 3) Os dados so excludos do lado direito da lista // 4) A lista est vazia quando no h nenhum dado armazenado // 5) os dados armazenados na lista no podem ser alterados // 6) possivel consultar qualquer elemento da lista // 7) Os dados so numeros inteiros var vetLista: vetor[0..6] de inteiro intLeft, intRight: inteiro Inicio // Seo de Comandos Procedimento inicializaLista Inicio intLeft <- 6 intRight <-6 FimProcedimento Funcao listaVazia(): Logico Inicio Retorne(intRight = intLeft) FimFuncao Funcao ListaCheia: Logico Inicio Retorne((intLeft = -1) E (intRight = 6)) FimFuncao Funcao TamanhoLista: Inteiro Inicio retorne(intRight - intLeft) FimFuncao Procedimento ExibirLista var i: inteiro Inicio Para i de intRight Ate (intLeft + 1) Passo -1 Faca Escreval(vetLista[i]) FimPara FimProcedimento Funcao ConsultarLista(intValor:Inteiro; var intPosicao:Inteiro): Logico var i: Inteiro p: Inteiro Inicio p <- -1 Para i de intRight Ate (intEsq + 1) Passo -1 Faca Se(valor = vetLista[i]) Entao p <- i Interrompa FimSe FimPara intPosicao <- intRight - P + 1 Retorne(P <> -1)

68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

FimFuncao Funcao RemoverLista(var intValor: Inteiro): Logico Inicio Se(ListaVazia) Entao retorne(Falso) Senao intValor <- vetLista[intRight] intRight <- intRight - 1 retorne(Verdadeiro) FimSe FimFuncao Funcao InserirLista(intValor:Inteiro):Logico var intDesloc: Inteiro Inicio Se(ListaCheia) Entao retorne(Falso) Senao Se(intLeft( = -1) Entao intDesloc = 6 - intDir Para i de intRight Ate (intLeft + 1) Passo -1 Faca vetLista[(i + intDesloc)] = vetLista[i] FimPara intRight = intRight + intDesloc intLeft = intLeft + intDesloc FimSe vetLista[intLeft] = intValor intleft = intLeft - 1 FimSe FimFuncao FimAlgoritmo