示例#1
0
文件: ll.c 项目: KimGames/ProjetoAED1
No* concatenaLista(No *L1, No *L2) {
  No *aux1 = L1;
  No *aux2 = L2;
  No *L3 = criaLista();

  while(aux1 != NULL) {
    L3 = insereOrdenado(L3, aux1->coef, aux1->exp);
    aux1 = aux1->prox;
  }

  while(aux2 != NULL) {
    L3 = insereOrdenado(L3, aux2->coef, aux2->exp);
    aux2 = aux2->prox;
  }
  return L3;
}
示例#2
0
/* Inicializacao do programa */
int main(){
   Agenda *lista, *resp;
   lista = NULL;
   int tel_lido;
   char parametro;
   char nome_lido[TAM];
   
   do{
      parametro = getchar();
      switch(parametro){
         case('i'): /* Insere um novo contato na agenda */
            getchar();
            scanf("%d", &tel_lido);
            getchar();
            scanf("%[^\n]", nome_lido);
            getchar();
            insereOrdenado(tel_lido, nome_lido, &lista);                        
            break;
            
         case('r'): /* Faz a remocao de um contato da agenda */
            getchar();
            scanf("%[^\n]", nome_lido);
            getchar();
            resp = busca(nome_lido, lista);
            
            if(resp == NULL)
               printf("Nao foi possivel remover: Contato inexistente!\n\n");
            else
               printf("Contato: %-40s %d\nFoi removido com sucesso!\n\n", resp->nome, resp->tel);
            
            removeNo(nome_lido, &lista);
            break;
         
         case('n'): /* Busca um nome na agenda */
            getchar();
            scanf("%[^\n]", nome_lido);
            getchar();
            resp = busca(nome_lido, lista);
                
            if(resp == NULL)
               printf("Contato nao encontrado!\n\n");
            else
               printf("%-40s %d\n\n", resp->nome, resp->tel);
                
            break;
                
         case('p'): /* Faz a impressao de todos os contatos em ordem alfabetica */
            if(lista != NULL)
               imprime(lista);
            break;
      }

   } while(parametro != 'f');
   
   libera(lista);
    
   return 0;
}
示例#3
0
int main(){
    No* L1,*L2,*L3;

    L1=criaLista();
    L2=criaLista();
    L3=criaLista();

    L1=insereOrdenado(L1,2,2);
    L1=insereOrdenado(L1,1,1);
    L1=insereOrdenado(L1,3,3);

    L2=insereOrdenado(L2,1,1);
    L2=insereOrdenado(L2,1,2);
    L2=insereOrdenado(L2,1,3);

    imprimeLista(L1);
    printf("\n");
    imprimeLista(L2);



    L3=somaPolinomio(L1,L2,L3);
    printf("\n");
    imprimeLista(L3);


    return 0;



}
示例#4
0
int main(){

    lista lst;
    initLista(&lst);

    insereInicio(&lst, 10);
    insereOrdenado(&lst, 1);
    imprimeLista(&lst);



    return 0;
}
示例#5
0
文件: ll.c 项目: KimGames/ProjetoAED1
No* derivaPolinomio(No *P1) {
  No *aux = P1;
  No *P2 = criaLista();

  //loop que realiza a multiplicação do coeficiente de P1
  //por seu expoente e subtrai 1 de seu expoente
  //para todos os seus elementos
  while(aux!=NULL) {
    P2=insereOrdenado(P2, (aux->coef * aux->exp), (aux->exp - 1));
    aux=aux->prox;
  }
  return P2;
}
示例#6
0
文件: ll.c 项目: KimGames/ProjetoAED1
No* integraPolinomio(No *P1) {
  No *aux = P1;
  No *P2 = criaLista();

  //loop que realiza a divisão do coeficiente de P1
  //por seu expoente somado com 1 e soma 1 ao seu expoente
  //para todos os seus elementos
  while(aux!=NULL){
    P2=insereOrdenado(P2, (aux->coef / (aux->exp + 1)), (aux->exp + 1));
    aux=aux->prox;
  }

  //Faltando: inserir constante de integração
  return P2;
}
示例#7
0
文件: ll.c 项目: KimGames/ProjetoAED1
No* subtraiPolinomio(No *P1, No *P2) {
  No *aux = P2;
  No* P2negativa = criaLista();
  No* P3 = criaLista();

  while(aux != NULL) {//loop que multiplica o polinômio P2 por -1
    P2negativa = insereOrdenado(P2negativa, (aux->coef * (-1)), aux->exp);
    aux = aux->prox;
  }
  //analálogo ao soma polinômio
  P3 = concatenaLista(P1, P2negativa);
  simplificaPolinomio(P3);
  destroiLista(P2negativa);

  return P3;
}
示例#8
0
int main(){
  int num, opcao;
  Lista l;

  inicLista(&l);
  
  opcao = 1;  
  while(opcao <= 10 && opcao > 0){
    printf("\n 1 - insere um numero no inicio da lista");
    printf("\n 2 - insere um numero no fim da lista");
    printf("\n 3 - insere um numero de maneira ordenada");
    printf("\n 4 - verifica se a lista esta ordenada");
    printf("\n 5 - ordena a lista");
    printf("\n 6 - remove o elemento que esta no inicio da lista");
    printf("\n 7 - remove o elemento que esta no fim da lista");
    printf("\n 8 - remove um valor determinado");
    printf("\n 9 - inverte");
    printf("\n 10 - exibe a lista");
    printf("\n qualquer outro numero para sair");
    printf("\n\nEntre com uma das opcoes acima: ");
    scanf("%d", &opcao);
    
    switch (opcao){
    case 1:
      printf("\n\nEntre com o numero a ser inserido: ");
      scanf("%d", &num);
      insereInicio(&l, num);
      break;      
    case 2:
      printf("\n\nEntre com o numero a ser inserido: ");
      scanf("%d", &num);
      insereFim(&l, num);
      break;
    case 3:
      printf("\n\nEntre com o numero a ser inserido: ");
      scanf("%d", &num);
      insereOrdenado(&l, num);
      break;
    case 4: 
      if (ordenada(&l))
	printf("\nLista ordenada\n");
      else
	printf("\nLista desordenada\n");
      break;
    case 5: 
      ordena(&l);      
      break;
    case 6:
      if (removeInicio(&l, &num))
	printf("\nNumero removido: %d\n", num);
      else
	printf("\nLista vazia");
      break;
    case 7:
      if (removeFim(&l, &num))
	printf("\nNumero removido: %d\n", num);
      else
	printf("\nLista vazia");
      break;
    case 8:
      printf("\n\nEntre com o numero a ser removido: ");
      scanf("%d", &num);
      if (!removeValor(&l, num))
	printf("Numero nao encontrado");
      break;      
    case 9: 
      inverte(&l);
      break;            
    case 10: exibe(&l); break;
    }
    
    exibe(&l);
    printf("\n\n");    

  }    
    //    libera(&l);
  return 0;
}