Exemplo n.º 1
0
int buscar(no_hash *t, int k, int i)
{
    if((i < tamanhoHash))//Garante a comparação com todos elementos
    {
        int j = gerar_pesos(k, i);
                if(t[j].chave == k){
                    return 1;//Se for encontrado a função recebe o valor da pesquisa, e invalidando a 1º condicional
                }
                else
                    return buscar(t, k, ++i);//Se não encontrar ocorre há recursão
    }
    else
    {
     return 0;//Quando o elemento é encontrado j!=0, invalidando a 1º condicional
    }
}
bool insertar (tListaCorreos &correos, const tCorreo &correo) {
	bool inserCorrecta = false;
	int pos, cont = correos.cont;

	if (correos.cont < MAX_CORREOS) {
		if (!buscar(correos, correo.id_correo, pos))  {
			for (int i = cont; pos < i; i--)
				correos.correo[i] = correos.correo[i - 1];
			correos.correo[pos] = correo;
			correos.cont++;
			inserCorrecta = true;
		}
	}

	return inserCorrecta;
}
Exemplo n.º 3
0
Pagina* buscar(Pagina* actual, tipoClave cl, int* indice)
{
   if (actual == NULL)
   {
      return NULL;
   }
   else
   {
      int esta;
      esta = buscarNodo(actual,cl,indice);
      if (esta)
         return actual;
      else
         return buscar(actual -> ramas[*indice],cl,indice);
   }
}
Exemplo n.º 4
0
int main(){

	CONTRATO c[10];
	
	for(int i=0;i<10;i++)
	{
		c[i].fecha.dia = i;

	}

	buscar(c);

	


}
bool insertar (tListaUsuarios &usuarios, const tUsuario &usuario) {
	bool inserCorrecta = false;
	int pos, cont = usuarios.cont;

	if (usuarios.cont < MAX_USUARIOS) {
		if (!buscar(usuarios, usuario.identificador, pos)) {
			for (int i = cont; pos < i; i--)
				usuarios.usuario[i] = usuarios.usuario[i - 1];
			usuarios.usuario[pos] = usuario;
			usuarios.cont++;
			inserCorrecta = true;
		}
	}

	return inserCorrecta;
}
Exemplo n.º 6
0
Arquivo: main.c Projeto: streeck/ed1
int main() {
  int i;

  //criar a lista
  LISTA_LIGADA lista;
  criar(&lista);

  //inserir itens na &lista
  for (i = 0; i < 10; i++) {
    ITEM item;
    item.chave = 9-i;
    item.valor = rand();
    inserir(&lista, &item);
  }

  imprimir(&lista);
  printf("---\n");

  ITEM item1;
  if (buscar(&lista, 4, &item1)) {
    printf("encontrado: %d - %d\n---\n", item1.chave, item1.valor);
  }

  remover_posicao(&lista, 5);

  imprimir(&lista);
  printf("---\n");

  ITEM item2;
  item2.chave = 4;
  item2.valor = 333;
  inserir(&lista, &item2);

  imprimir(&lista);
  printf("---\n");

  remover_fim(&lista);
  remover_fim(&lista);
  remover_fim(&lista);

  imprimir(&lista);
  printf("---\n");

  apagar_lista(&lista);

  return 0;
}
Exemplo n.º 7
0
template <typename T> void lista_nodo<T>::agregar(T id) {
  if (buscar(id)) return;
  nodo<T> *_nodo = new nodo<T>;
  _nodo->id_nodo = id;
  _nodo->bandera = 0;
  _nodo->ruta_corta = 0;
  _nodo->ant = NULL;
  _nodo->saliente = new lista_arco<T>;
  if (donde == MIFA) {
    _nodo->sig = anterior->sig;
    anterior->sig = _nodo;
  } else {
    _nodo->sig = principio;
    principio = _nodo;
  }
  agregado = _nodo;
}
Exemplo n.º 8
0
bool insertar(tListaUsuarios & usuarios, const tUsuario & usuario, int &pos) {
	bool insertando;

	if (usuarios.contador < N) {
		pos = 0;
		insertando = buscar(usuarios, usuario.identificador, pos);

		if (!insertando) {
			desplazarDerecha(usuarios, pos);
			usuarios.usuario[pos] = usuario;
			usuarios.contador++;
		}
		
	}

	return insertando;
}
Exemplo n.º 9
0
void baja (parbol ** r, int valor)
{
    parbol *ant, *act, *aux;

    buscar (*r, valor, &ant, &act);
    if (act == NULL)
        printf ("\aNo existe %d en el árbol \n", valor);
    else {
        aux = act;
        if ((act->d == NULL) && (act->i == NULL))   /* nodo hoja */
            if (ant == NULL)
                *r = NULL;
            else if (ant->d == act)
                ant->d = NULL;
            else
                ant->i = NULL;
        else if ((act->d != NULL) && (act->i != NULL)) {    /* 2 hijos */
            ant = act;
            aux = ant->i;
            while (aux->d) {
                ant = aux;
                aux = aux->d;
            }
            act->clave = aux->clave;
            if (ant == act)
                ant->i = aux->i;
            else
                ant->d = aux->i;
        }
        else /* 1 hijo */ if (act->d == NULL)   /* hijo izquierdo */
            if (ant == NULL)
                *r = act->i;
            else if (ant->d == act)
                ant->d = act->i;
            else
                ant->i = act->i;
        else /* act-> i = null. TIENE HIJO DERECHO  */ if (ant == NULL)
            *r = act->d;
        else if (ant->d == act)
            ant->d = act->d;
        else
            ant->i = act->d;
        free (aux);
    }
}                               /* baja */
Exemplo n.º 10
0
void baja (struct nodo **cl, int valor)
{
    struct nodo *ant, *act;
    int hallado;

    buscar (*cl, valor, &hallado, &ant, &act);
    if (!hallado)
        printf ("No existe el dato en la lista \n");
    else {
        if (ant == NULL)
            *cl = act->sig;
        else
            ant->sig = act->sig;
        if (act->sig)
            act->sig->ant2 = ant;
        free (act);
    }
}                               /* baja */
Exemplo n.º 11
0
/*
    Remove um valor de uma tabela hash.
 */
bool remover( TabelaHash *tabelaHash, int valor ) {

    int posicao = buscar( tabelaHash, valor );

    if ( posicao != -1 ) {

        tabelaHash->valores[posicao].status = LIVRE;
        tabelaHash->valores[posicao].valor = 0;

        return true;

    } else {

        return false;

    }

}
Exemplo n.º 12
0
int menuCrud(int opcE){
    int opcO,    //var que recebe a oopc do menu crud
        bolinho = 0; //var de controle pra voltar ao menu de ent
    //aqui vai o menu crud
    printf("Insira  a operacao desejada:\n");
        printf("\t1 - Inserir\n\t2 - Excluir\n\t3 - Atualizar\n\t4 - Buscar\n\t\t\t\t -1 - VOLTAR\n\t: ");
        scanf("%d", &opcO);
        getchar();
        //fflush(stdin);

    switch(opcO){
        case 1:
            inserir(opcE);
            break;
        case 2:
            excluir(opcE);
            break;
        
        case 3:
            atualizar(opcE);
            break;
            
        case 4:
            buscar(opcE);
            break;
            
        case -1:
            bolinho = 1;
            printf("Bolinho com mostarda\n");
            break;
        default:
            printf("Opção invalida!");
            break;
    }
    system("clear");
    if(bolinho == 1){
        return 1;
    }else{
        menuCrud(opcE);
    }

    return 0;
}
Exemplo n.º 13
0
main(){	
   incluir_teste();
   mostrar();
/*  
   printf("Digite a matricula procurada: ");
   scanf("%d",&matricula);

   int posicao = buscar(matricula);
		
   system("cls");
   if(posicao != -1){
   	   printf("Item procurado:\n");
       printf("Matricula: %d\n",aluno[posicao].matricula); 
	   printf("Nome: %s\n",aluno[posicao].nome);
	   printf("Idade: %d",aluno[posicao].idade);
   }else{
   	   printf("Nenhum dado encontrado");
   }
*/
	int i;
	for(i = 0;i < 2;i++){
	int mat;
	printf("Digite a matricula a remover: ");
	scanf("%d",&mat);
		
	int pos_aluno = buscar(mat);
		
	remover2(pos_aluno);
	}
		
	int id_maior = obtem_nota("maior");
	
	printf("  ALUNO COM MAIOR NOTA\n");
	printf("------------------------\n");	
	printf("    Matricula:   %d   \n",aluno[id_maior].matricula);
	printf("------------------------\n");
	printf("    Nome:        %s\n",aluno[id_maior].nome);
	printf("------------------------\n");
	printf("    Idade:       %d\n",aluno[id_maior].idade);
	printf("------------------------\n");
	printf("    Nota:        %d\n",aluno[id_maior].nota);
}
Exemplo n.º 14
0
void main() {

	clrscr();
	cprintf("Dato:\n");

	while(x<9) {
		kbhit();
		n =  buscar(getch());
		ci[x] = abc[n];
		cf[x] = abc[n+1];
		x++;
	}

	printf("%s", cf);
	printf("\n\n");
	printf("%s", ci);

	getch();

}
Exemplo n.º 15
0
int main() {
	FILE* arquivo;
	TNo* raiz = NULL;
	int id, opcao;
	char nome[255];
	float av1, av2, av3;

	criaNovoArquivoModificado();

	if ((arquivo = fopen("ALTERADO.DAT", "r")) == NULL) {
		printf("Erro ao tentar abrir o arquivo.\n\n");
		exit(1);
	}

	arquivo = fopen("ALTERADO.DAT", "r");

	while (!feof(arquivo)) {
		fscanf(arquivo, "%d;%[^;]s", &id, nome);
		fscanf(arquivo, ";%f", &av1);
		fscanf(arquivo, ";%f", &av2);
		fscanf(arquivo, ";%f;", &av3);

		if (!feof(arquivo)) {
			raiz = cadastrar(raiz, raiz, id, nome, av1, av2, av3);
		}
	}

	opcao = usaMenu();

	if(opcao == 1) {
		printf("Opção 1 Escolhida");
		imprimirEmOrdem(raiz);
	} else {
		printf("Opção 2 Escolhida\n");
		printf("Digite o id do aluno:\n");
		scanf("%d", &id);
		buscar(raiz, id);
	}

	return 0;
}
//Remover todas as ocorrências de 'num', retornando o total de ocorrências.
//Logo, se o valor zero for retornado, indicará que o elemento não se
//encontrava na lista
int remover (TLista *L, int num)
{
    int maior, qtd, pos = buscar(*L, num, &maior);

    if(pos == -1) //se "num" não está na lista
    {
        qtd = 0;
    }
    else
    {
        qtd = quantDeOcorren(L, pos, maior-1);
        //quantas vezes "num" aparece na lista
        dimPosNaFila(L, qtd, maior,L->quant-1);
        //anda com a lista, copiando o conteúdo dos índices que estavam
        //depois de "num" para as posições que "num" ocupava
        L->quant = L->quant - qtd;
        //diminui "qtd" índices válidos no total da lista
    }

    return qtd;
}
Exemplo n.º 17
0
int main(){
    double tiempo;
    printf("La expresion de los datos a nivel de pantalla podria contener errores\n");
    printf("Debido a que las bases de datos algunas tienen acentos, y c no las imprime\n");
    printf("Presione Enter para continuar\n");
    getchar();
    time_t inicio,final;
	THash *thash = inicializarTHash();
    time(&inicio);
	c_Archivo(thash);
	time(&final);
	tiempo = difftime(final,inicio);
	printf("El tiempo de carga fue de %f segundos\n",tiempo);
	genera_ArchivoTabla(thash);
	printf("Archivo de dispersion generado\n");
	buscar(thash);
	getchar();
	getchar();
	getchar();
	return 0;
}
Exemplo n.º 18
0
	/*
	 * Función que borra un nodo y libera la memoria.
	 */
	lista* borrar(int id){
		lista* temporal = head;
		if(buscar(id) == true){
			while(temporal != NULL){
				if(temporal-> identificador == id && temporal->cantidad > 1){
					temporal->cantidad -= 1;
					return head;
				}
				temporal = temporal->siguiente;
			}
			lista* borrando = buscarNodo(id);
			lista* previo = buscarAnterior(id);
			previo->siguiente = borrando->siguiente;
			borrando->siguiente = NULL;
			free(borrando);
			borrando = NULL;
			return head;
		}
		else{
			return head;
		}
	}
/*
 * eliminar es una función que dado un elemento de la lista, lo elimina y hace
 * free para liberar memoria.
 * Argumentos: list, es un apuntador a la lista.
 *             codigo, es un entero que representa el código de la pregunta a eliminar.		   
 * Retorna: 1 si elimina la pregunta exitosamente, 0 en caso contrario.
 */
int eliminar(LISTA **list, int codigo){

    LISTA **temp;
    temp = buscar(list,codigo);
    
    
	if (temp != NULL){
	    //Cuando hay un solo elemento en la lista.
	    if((*temp)->sig == NULL && (*temp)->ant == NULL){
	        *list = NULL;
	        free(*temp);    
	    }
	    //Aquí estamos eliminando el último nodo.
	    else if((*temp)->sig == NULL && (*temp)->ant != NULL){
	        **list = *(*list)->ant; //Situamos el último en el anterior.
	        (*list)->sig = NULL;
	        free(*temp);
	    }
	    //Aquí estamos eliminando el primer nodo.
	    else if((*temp)->sig != NULL && (*temp)->ant == NULL){
	        (*temp)->sig->ant = NULL;
	        free(*temp);
	    }
	    //Aquí estamos en un caso del medio.
	    else{
	        (*temp)->ant->sig = (*temp)->sig;
	        (*temp)->sig->ant = (*temp)->ant;
	        free(*temp);
	    }
        
        return 1;

    } 
    else
		return 0;
    
    
}
Exemplo n.º 20
0
	/*
	 * Función que incerta ordenadamente en la lista
	 */
	lista* insertar(int id){
		if(head == NULL){ //si la lista esta vacia, cree un nodo cabeza.
			(crearLista(id));
		}
		lista* temporal = //head;	creo un puntero temporal a la cabeza de la lista.
		if(buscar(id) == true){ //busco si el nodo existe
			while(temporal != NULL){ //si es así debo solamente aunemtar el contador de la cantidad del nodo
				if(temporal-> identificador == id){
					temporal->cantidad += 1;
					return head; //termina la ejecucuón
				}
				temporal = temporal->siguiente;
			}
		}
		// si el nodo no existe, debo asignar la memoria para el almacenamiento de este.
		lista* ptr = (lista*)malloc(sizeof(lista));
	    if(NULL == ptr){
	        return NULL;
	        printf("Error al asignar la memoria\n");
	    }
	    //asigno los valores que concervan la información del puntero
		ptr->identificador = id;
	    ptr->cantidad =  1;
	    ptr->siguiente = NULL;
	    //me preparo para insertar el nodo nuevo
	   	lista *previo; 
		temporal = head->siguiente; //asigno 2 punteros, 1 al head y otro al siguiente
		previo = head;
		//digo que mientras no termine y no encuentre un id mayor al q voy a insertar
		while(temporal != NULL && temporal->identificador < id) { 
		    previo = temporal;
		    temporal = temporal->siguiente;
		}
		//inserto el nodo.
		ptr->siguiente = temporal;
		previo->siguiente = ptr;
		return head; 
	}
Exemplo n.º 21
0
void Arbol::eliminar(QString valor)
{
    if(!inicio)
    {
        return;
    }

    Arbol* borrar = buscar(valor, this->inicio);

    if(!borrar->hijo_derecho && !borrar->hijo_izquierdo)
    {
        return delete borrar;
    }

    Arbol* temp;

    if(borrar && !borrar->hijo_derecho)
    {
        temp = borrar;
        borrar = borrar->hijo_izquierdo;
        return delete temp;
    }

    else if(borrar && !borrar->hijo_izquierdo)
    {
        temp = borrar;
        borrar = borrar->hijo_derecho;
        return delete temp;
    }

    else
    {
        Arbol* temp_hijos = borrar->hijo_derecho;
        borrar = borrar->hijo_izquierdo;
        Arbol* temp_hijo_der = getMaxDer(borrar);
        temp_hijo_der->hijo_derecho = temp_hijos;
    }
}
Exemplo n.º 22
0
int inserirOrdenado(TLista *L, char *palavra){
    TLista aux = buscar(*L,palavra);
    TLista atual,anterior;
    if (aux){ //se o elemento existe na lista
        return 0;
    }
    aux =  malloc(sizeof(TNo)); //alocacao da memoria.
    if (!aux){ //não houver memoria disponivel
        return 0;
    }
    strcpy(aux->palavra,palavra); //copia da palavra
    
    if (!*L){ //lista vazia
	    *L = aux;
        aux->prox = NULL;
        return 1;
    }
    else{ //lista não vazia
        atual = *L; //aponta para o primeiro da lista.
        //antes do primeiro
        if (strcmp(palavra,atual->palavra)<0){ //<0 = esq < dir
            aux->prox = *L;
            *L = aux;
            return 2;
        }
        else{ //depois do primeiro
            while(atual && (strcmp(palavra,atual->palavra)>0)){
            anterior = atual;
            atual = atual->prox;
        }
        aux->prox = atual;
        anterior->prox = aux;
        return 3;
        }
    }
}
Exemplo n.º 23
0
main()
{
  int i;
  enlace l;
  l=NULL;

  insertar(&l, 1);
  insertar(&l, 2);
  insertar(&l, 4);
  insertar(&l, 3);
  
  i = buscar(l, 3);
    
  printf("Esta el 3? : %d\n",i);
    
  printf("IMPRIME\n");
  listar(l);

  eliminar(&l, 4);
    
  printf("IMPRIME\n");
  listar(l);
    
}
Exemplo n.º 24
0
void alta (parbol ** r, int valor)
{
    parbol *ant, *act;

    buscar (*r, valor, &ant, &act);
    if (act)
        printf ("\a\aLa clave %d ya existe \n", valor);
    else {
        act = (parbol *) malloc (sizeof (parbol));
        if (act == NULL)
            printf ("NO EXISTE ESPACIO DISPONIBLE \n");
        else {
            act->clave = valor;
            act->i = NULL;
            act->d = NULL;
            if (ant == NULL)
                *r = act;
            else if (ant->clave > valor)
                ant->i = act;
            else
                ant->d = act;
        }
    }
}                               /* alta */
Exemplo n.º 25
0
Entrada *buscar_ht(char *key)
{
	return buscar(hashTable[hash(key)], key);
}
//----------------------------Implementação da Main-----------------------------
int main ()
{
   int opcao, num1, num2;
   int pos, cap;
   TLista lista;

   printf ("Capacidade da lista: ");
   scanf ("%d", &cap);  getchar();

   lista = inicializar (cap);

   //Um menu será exibido ao usuário até que este opte pela saída do sistema
   do {
      //é exibido o menu ao usuário e retornada a alternativa escolhida
      opcao = menu ();

      switch (opcao) {
         //Inserir
         case 1: printf ("Entre com o número a ser inserido: ");
                 scanf ("%d", &num1); getchar();

                 if (inserir (&lista, num1) == TRUE) {
                    printf ("Elemento inserido com sucesso!\n");
                 } else {
                    printf ("ERRO: Elemento não inserido!\n");
                 }
                 break;

         //Remover
         case 2: printf ("Entre com o número a ser removido: ");
                 scanf ("%d", &num1); getchar();

                 if (remover (&lista, num1)) {  //o mesmo que remover (&lista, num1) > 0
                    printf ("Elemento removido com sucesso!\n");
                 } else {
                    printf ("ERRO: Elemento não removido!\n");
                 }
                 break;

         //Alterar
         case 3: printf ("Entre com o número a ser alterado: ");
                 scanf ("%d", &num1); getchar();

                 printf ("Entre com o novo número: ");
                 scanf ("%d", &num2); getchar();

                 if (alterar (&lista, num1, num2)) {
                    printf ("Elemento alterado com sucesso!\n");
                 } else {
                    printf ("ERRO: Elemento não alterado!\n");
                 }
                 break;

         //Buscar
         case 4: printf ("Entre com o número a ser buscado: ");
                 scanf ("%d", &num1); getchar();

                 //"cap" não é mais usada nesse momento
                 pos = buscar (lista, num1, &cap);

                 //O elemento foi encontrado e retornada a posição de sua
                 //primeira ocorrência
                 if (pos >= 0) {
                    printf ("Elemento encontrado na lista (posicao %d)!\n", pos);
                 } else {
                    printf ("ERRO: Elemento não encontrado!\n");
                 }
                 break;

         //Exibir
         case 5: exibir (lista);
                 break;

         //Tamanho
         case 6: printf ("Há %d elementos na lista!\n", tamanho(lista));
                 break;

         //Sair
         case 7: printf ("Fim do programa!\n");
                 break;

         //Opção inválida!
         default: printf ("Opção inválida! Tente novamente!\n");

      }
      getchar();
   } while (opcao != 7);
}
Exemplo n.º 27
0
int main(int argc, char **argv) {
    /* inicializa os alunos */
    Aluno *aluno1 = inicializarAluno("Andre", 10.0f);
    Aluno *aluno2 = inicializarAluno("Bruno", 9.0f);
    Aluno *aluno3 = inicializarAluno("Carlos", 6.0f);
    Aluno *aluno4 = inicializarAluno("Denis", 8.0f);
    Aluno *aluno5 = inicializarAluno("Roberto", 4.5f);
    Aluno *aluno6 = inicializarAluno("Anderson", 7.0f);
    Aluno *aluno7 = inicializarAluno("Anwerzig", 9.9f);
    Aluno *aluno8 = inicializarAluno("Ankrutzonh", 5.9f);
    Aluno *aluno9 = inicializarAluno("Ankrutzonhxsdt", 3.9f);
    Aluno *aluno10 = inicializarAluno("Andri", 9.5f);
    Aluno *aluno11 = inicializarAluno("Andri", 9.2f);
    Aluno *aluno12 = inicializarAluno("Andri", 9.0f);
    Aluno *aluno13 = inicializarAluno("Joaozao", 2.0f);

    /* inicializa a tabela hash */
    int m = 256;
    Hash *hashTable = inicializarHash(m);

    /* insere valores na tabela hash */
    inserir(hashTable, aluno1, m);
    inserir(hashTable, aluno2, m);
    inserir(hashTable, aluno3, m);
    inserir(hashTable, aluno4, m);
    inserir(hashTable, aluno5, m);
    inserir(hashTable, aluno6, m);
    inserir(hashTable, aluno7, m);
    inserir(hashTable, aluno8, m);
    inserir(hashTable, aluno9, m);
    inserir(hashTable, aluno10, m);
    inserir(hashTable, aluno11, m);
    inserir(hashTable, aluno12, m);

    /* remove elementos da tabela hash */
    remover(hashTable, aluno10, m);
    //remover(hashTable, aluno11, m);
    //remover(hashTable, aluno12, m);

    /* percorre a tabela Hash */
    percorrerTabelaHash(hashTable, m);

    /* procura por um elemento */
    Aluno *enderecoBusca = buscar(hashTable, aluno3, m);
    if(enderecoBusca == NULL) {
        printf("Elemento nao encontrado!\n");
    } else {
        printf("Elemento %s com nota %.1f encontrado!\n",
               enderecoBusca->nome, enderecoBusca->nota);
    }

    /* libera os alunos e a tabela hash da memoria */
    destruirAluno(&aluno1);
    destruirAluno(&aluno2);
    destruirAluno(&aluno3);
    destruirAluno(&aluno4);
    destruirAluno(&aluno5);
    destruirAluno(&aluno6);
    destruirAluno(&aluno7);
    destruirAluno(&aluno8);
    destruirAluno(&aluno9);
    destruirAluno(&aluno10);
    destruirAluno(&aluno11);
    destruirAluno(&aluno12);
    destruirHash(&hashTable);

    return 0;
}
Exemplo n.º 28
0
size_t ConjuntosDisjuntosMod::buscar(size_t p) const {
    if (id[p] < 0) // es una raíz
        return p;
    else
        return id[p] = int(buscar(id[p]));
}
Exemplo n.º 29
0
string Buscador::buscarPorNombre(string username, string nombre) {
	auto predicate = [&] (MetadatoArchivo& metadato) -> bool {return match(metadato.nombre, nombre);};
	map<string, string> estructuraPermisos = buscar(username, predicate);
	string jsonEstructuraFileSystem = obtenerEstructuraCarpeta(username, true, predicate);
	return ParserJson::estructurasMerge(estructuraPermisos, jsonEstructuraFileSystem);
}
Exemplo n.º 30
0
int main(){
    
    TLista L[10] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
    
    int opcao,i,controle=1,controle1=1;
    char palavra[50],palavra1[50];
    //TLista pos;
    do {
      
      opcao = menu ();
      
      switch (opcao) {
        //Inserir    
        case 1: 
        while (1){
            //system("clear");
            printf("\n\n");
            printf("Escreva a palavra a Inserir (0 para sair): ");
            scanf("%s",palavra);
            if (!strcmp(palavra,"0")){
                 break;
            }
            else{
                 minuscula(palavra);
                if (inserirOrdenado(&L[hash(palavra)],palavra)){
                 printf("Inserção OK");
                }
                else{
                 printf("Falha ao inserir");
                }
            }
        }
         break;
         
                 
         //Remover    
         case 2:
         printf("escreva a palavra a remover: ");
         scanf("%s",palavra);
         minuscula(palavra);
         if (remover(&L[hash(palavra)],palavra)){
             printf("remover OK!");
         }
         else{
             printf("remover FALHOU!");
         }
         break;
                 
         //Alterar     
         case 3: 
         printf("Escreva a palavra que sera removida: ");
         scanf("%s",palavra);
         minuscula(palavra);
         printf("Escreva a palavra que sera inserida: ");
         scanf("%s",palavra1);
         minuscula(palavra1);
         if (remover(&L[hash(palavra)],palavra)){
            printf("remover OK!\n");
            if (inserirOrdenado(&L[hash(palavra1)],palavra1)){
            printf("Inserção OK\n");
            }
            else{
            printf("Falha ao inserir\n");
            }
             
         }
         else{
             printf("remover FALHOU!\n");
         }
         break;
                 
         //Buscar    
         case 4: 
         printf("insira a palavra a buscar: ");
         scanf("%s",palavra);
         minuscula(palavra);
         if (buscar(L[hash(palavra)],palavra)){
             printf("A Palavra %s, EXISTE!\n",palavra);
         }
         else{
             printf("A Palavra %s, NAO EXISTE!\n",palavra);
         }
         break;
                 
         //Exibir
         case 5:
         system("clear");
		 for (i=0;i<10;i++){
			 exibir(L[i],i);
		 }
         scanf("%d",&i);
         
         break;
           
         //Exibir lista
         case 6:
         printf("insira a linha a exibir: ");
         scanf("%d",&i);
         system("clear");
         i--;
		 exibir(L[i],i);
		 scanf("%d",&i);
		 break;
               
         //Sair
         case 7: printf ("Fim do programa!\n");
         controle = 0;
                 break; 
                 
         //Op??o inv?lida!
         default: 
         printf ("opcao invalida! Tente novamente!\n");
         break;
                 
      }
   } while (controle);
}