Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. /******************************************************
  2.  
  3. Autor: Augusto Tetsuo Prado Inafuco
  4.  
  5. ******************************************************/
  6.  
  7. #include "ListaInt.h"
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <string.h>
  11.  
  12. /**
  13. * Insere um valor na lista
  14. * @param lista Lista
  15. * @param valor Valor a ser inserido
  16. * @return Sucesso da operaзгo
  17. */
  18. int insert(ListaInt **lista, int valor)
  19. {
  20. ListaInt *novo = malloc(sizeof(ListaInt));
  21. ListaInt *and = *lista;
  22. novo->valor=valor;
  23. novo->proximo=NULL;
  24.  
  25. if(*lista!=NULL){
  26. while(and->proximo!=NULL){
  27. and = and->proximo;
  28. }
  29. and->proximo = novo;
  30. }
  31. else{
  32. *lista = novo;
  33. }
  34.  
  35. return 0;
  36. }
  37.  
  38. /**
  39. * Retorna o valor contido na lista na posiзгo pedida
  40. * @param lista Lista
  41. * @param posicao Posiзгo do elemento desejado
  42. * @return Valor contido na posiзгo
  43. */
  44. int get(ListaInt *lista, int posicao)
  45. {
  46. ListaInt *and = lista;
  47. int x, i;
  48. if(tamanho(lista)!=0 && tamanho(lista)>posicao)
  49. {
  50. for(i=0; i<posicao; i++)
  51. {
  52. and=and->proximo;
  53. }
  54. x=and->valor;
  55.  
  56. }
  57. return x;
  58. }
  59.  
  60. /**
  61. * Remove o elemento contido na lista na posiзгo pedida
  62. * @param lista Lista
  63. * @param posicao Posiзгo do elemento a ser excluнdo
  64. * @return Sucesso da operaзгo
  65. */
  66. int removePos(ListaInt **lista, int posicao)
  67. {
  68. int i;
  69. ListaInt *temp = *lista;
  70. ListaInt *and = *lista;
  71. if(posicao==0){
  72. *lista = and->proximo;
  73. free(temp);
  74. }
  75. else if(tamanho(*lista)>posicao){
  76. for(i=0;i<posicao-1;i++){
  77. and = and->proximo;
  78. }
  79. temp = and->proximo;
  80. and->proximo = and->proximo->proximo;
  81. free(temp);
  82. }
  83. else{
  84. printf("Erro ao deletar ao deletar posicao!!!");
  85. return -1;
  86. }
  87.  
  88. return 0;
  89. }
  90.  
  91. /**
  92. * Conta o nъmero de elementos na lista e retorna este valor
  93. * @param lista Lista
  94. * @return Nъmero de elementos na lista
  95. */
  96. int tamanho(ListaInt *lista)
  97. {
  98. int contador=0;
  99. ListaInt *and = lista;
  100. while(and!=NULL){
  101. and=and->proximo;
  102. contador++;
  103. }
  104. return contador;
  105. }
  106.  
  107. /**
  108. * Converte a lista em uma string no formato 2<->3<->1<->5<->4
  109. * @param lista Lista
  110. * @param saida String com os valores
  111. * @return
  112. */
  113. void toString(ListaInt *lista, char saida[])
  114. {
  115. int i;
  116. saida[0]=0;
  117. for(i=0;i<tamanho(lista);i++){
  118. sprintf(saida,"%s%d<->", saida, get(lista,i));
  119. }
  120. return;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement