예제 #1
0
void InsereRecursivo(TGrafo *T, int origem, int destino){
    TGrafo aux = (*T);
    while (aux != NULL){
        if((aux)->codigo == origem){
            //printf("Vertice %d", aux->codigo);
            InsereLista((aux)->lista, destino);
            //printf("Inseriu\n");
            return;
        }
        //printf("Erro ");
        aux = aux->ProxNo;
    }
}
예제 #2
0
void listaenc(int op){	

	switch(op){
		case 0:
        exit(1);
		break;	
		case 1:
		LVazia();		
		break;
		case 2:
		ImprimeLista();		
		break;
		case 3:
		  int d;
		  printf("Novo Elemento:\n");
		  scanf("%d",&d);   
		  InsereLista(d); 
			break;
		case 4:
			int x;
		  printf("Buscar Elemento:\n");
		  scanf("%d",&x);
		 PesquisaLista(x); 
			break;
	   	case 5:
		   int b;
		  printf("Remover Elemento:\n");
		  scanf("%d",&b);
	 	  RemoveLista(b); 
		  break;

		default:
			printf("Comando invalido\n\n");
	}
	
}
void menu(ListaLinear *L)
{
	int i,status_menu;
	status_menu=0;
	
	do
	{
		printf("\n");
		printf("\n");
		printf("\t\t---------------------Lista de contatos---------------------\n\n");
		printf("Informe uma das seguintes opções:\n");
		printf("1 - Criar lista\n");
		printf("2 - Adicionar Contato\n");
		printf("3 - Enumerar Contato\n");
		printf("4 - Pesquisar Contatos por nome\n");
		printf("5 - Remover Contato com base na posicao\n");
		printf("6 - Remover Contato com base no nome\n");
		printf("7 - Tamanho da lista\n");
		printf("8 - Remover lista\n");
		printf("9 - Sair\n");
		printf("Opção: ");
		scanf("%d",&i);
		switch(i)
		{
			case 1:
			{
				if (!L)
				{
					if (L=(ListaLinear *) malloc (sizeof(ListaLinear)))
					{ConstroiLista(L);printf("\t\tLista criada.\n\n");}
					else{printf("\t\tNão foi possível criar lista.\n\n");}
				}else{printf("\t\tLista já está criada.\n\n");}
				break;
			}
			case 2:
			{
				if (L!=NULL)
				{
					char nome[max_tamanho_nome],telefone[max_tamanho_telefone];

					printf("Informe o nome: ");scanf("%50s",nome);
					printf("Informe o telefone: ");scanf("%11s",telefone);

					if (InsereLista(L,nome,telefone,TamanhoLista(L)+1)){printf ("\n\t\tContato inserido com sucesso.\n\n");}
					else{printf("\t\tNão foi possível inserir contato na lista.\n\n");}

				}else{printf("\t\tLista inexistente.\n\n");}
				break;
			}
			case 3:
			{
				if (L)
				{
					if (L->inicio!=NULL){EnumeraLista(L);}else{printf("\t\tLista está vazia.\n\n");}
				}
				else{printf("\t\tLista inexistente.\n\n");}
				break;
			}
			case 4:
			{
				if (L)
				{
					if (L->inicio!=NULL)
					{
						char nome[max_tamanho_nome];int pos;
						printf("Informe o nome: ");scanf("%50s",nome);
						pos=BuscaNaoOrdenadaLista(L,nome);
				
						if (pos!=-1){printf("\n\t\tContato encontrado na posição %d.\n\n",pos);}
						else{printf("\n\t\tContato não foi encontrado na lista.\n\n");}
					}else{printf("\t\tLista está vazia.\n\n");}
				}else{printf("\t\tLista inexistente.\n\n");}
				break;
			}
			case 5:
			{
				if(L)
				{
					if (L->inicio!=NULL)
					{
						int i;
						printf("Informe a posição a ser removida: ");
						scanf("%d",&i);
						RemovePosicaoEm(L,i);
					}else{printf("\t\tLista está vazia.\n\n");}
				}else{printf("\t\tLista inexistente.\n\n");}
				break;
			}
			case 6:
			{
				if (L)
				{
					if (L->inicio!=NULL)
					{
						char nome[max_tamanho_nome];int pos;
						printf("Informe o nome: ");scanf("%50s",nome);
						pos=BuscaNaoOrdenadaLista(L,nome);
				
						if (pos!=-1){RemovePosicaoEm(L,pos);}
						else{printf("\n\t\tContato não foi encontrado na lista.\n\n");}
					}else{printf("\t\tLista está vazia.\n\n");}
				}else{printf("\t\tLista inexistente.\n\n");}
				break;
			}
			case 7:
			{
				if (L){printf("\n\t\tTamanho atual da lista: %d\n\n",TamanhoLista(L));}
				else{printf("\t\tLista inexistente.\n\n");}
				break;
			}
			case 8:
			{
				if (L)
				{
					char c;
					while ( (c=getchar())!='s' && c!='S' && c!='n' && c!='N' )
					{
						printf("\n\t\tDeseja remover lista (s/S/n/N)? ");
					}
					if (c=='s' || c=='S')
					{
						if (L->inicio!=NULL)
						{DestroiLista(L);printf("\n\t\tLista removida com sucesso.");}
						else{printf("\n\t\tLista está vazia.");}
					}
				}else{printf("\t\tLista inexistente.\n\n");}
				break;				
			}
			case 9: {printf("\t\tEncerrando programa.\n\n");status_menu=1;break;}
			default: printf("\t\tOpção inválida.\n\n");break;
		}
	}while(status_menu==0);
	exit(0);
}