Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /******************************************************
- Autor: Augusto Tetsuo Prado Inafuco
- ******************************************************/
- #include "ListaInt.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- /**
- * Insere um valor na lista
- * @param lista Lista
- * @param valor Valor a ser inserido
- * @return Sucesso da operaзгo
- */
- int insert(ListaInt **lista, int valor)
- {
- ListaInt *novo = malloc(sizeof(ListaInt));
- ListaInt *and = *lista;
- novo->valor=valor;
- novo->proximo=NULL;
- if(*lista!=NULL){
- while(and->proximo!=NULL){
- and = and->proximo;
- }
- and->proximo = novo;
- }
- else{
- *lista = novo;
- }
- return 0;
- }
- /**
- * Retorna o valor contido na lista na posiзгo pedida
- * @param lista Lista
- * @param posicao Posiзгo do elemento desejado
- * @return Valor contido na posiзгo
- */
- int get(ListaInt *lista, int posicao)
- {
- ListaInt *and = lista;
- int x, i;
- if(tamanho(lista)!=0 && tamanho(lista)>posicao)
- {
- for(i=0; i<posicao; i++)
- {
- and=and->proximo;
- }
- x=and->valor;
- }
- return x;
- }
- /**
- * Remove o elemento contido na lista na posiзгo pedida
- * @param lista Lista
- * @param posicao Posiзгo do elemento a ser excluнdo
- * @return Sucesso da operaзгo
- */
- int removePos(ListaInt **lista, int posicao)
- {
- int i;
- ListaInt *temp = *lista;
- ListaInt *and = *lista;
- if(posicao==0){
- *lista = and->proximo;
- free(temp);
- }
- else if(tamanho(*lista)>posicao){
- for(i=0;i<posicao-1;i++){
- and = and->proximo;
- }
- temp = and->proximo;
- and->proximo = and->proximo->proximo;
- free(temp);
- }
- else{
- printf("Erro ao deletar ao deletar posicao!!!");
- return -1;
- }
- return 0;
- }
- /**
- * Conta o nъmero de elementos na lista e retorna este valor
- * @param lista Lista
- * @return Nъmero de elementos na lista
- */
- int tamanho(ListaInt *lista)
- {
- int contador=0;
- ListaInt *and = lista;
- while(and!=NULL){
- and=and->proximo;
- contador++;
- }
- return contador;
- }
- /**
- * Converte a lista em uma string no formato 2<->3<->1<->5<->4
- * @param lista Lista
- * @param saida String com os valores
- * @return
- */
- void toString(ListaInt *lista, char saida[])
- {
- int i;
- saida[0]=0;
- for(i=0;i<tamanho(lista);i++){
- sprintf(saida,"%s%d<->", saida, get(lista,i));
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement