Jump to content
Fórum Script Brasil
  • 0

Dúvida sobre lista encadeada simples - eliminar primeira metade da lista


Question

Bom dia, pessoal.
Espero que eu esteja publicando de forma certa, porque sou novo no fórum e novo na programação.
Então, sobre uma dúvida que estou, mais especificamente em "Listas Encadeadas Simples", é que a função abaixo deve eliminar a primeira metade da lista encadeada.
Eu teria que percorrer toda lista para eliminar a metade da lista, caso seja par.

Será que estou fazendo de forma certa?

Se puderem me ajudar com o código abaixo, será muito bem-vindo!!

Função abaixo:

// (c) Remove a primeira metade da Lista. Caso a lista possua um número ímpar de elementos,
// considere que a primeira metade possui mais elementos
// (Ex: se a lista possuir 5 elementos, a primeira metade possui os 3 primeiros elementos).
// Se a lista tiver vazia, nada acontece.
void removePrimeiraMetade(Lista *L) {
    // IMPLEMENTE ESTA FUNÇÃO
    //Estou pensando no código
	if (listaEstavazia(L)){
      return;
    }
  	else{
      No *p = L->inicio;
      No *anterior = NULL;
      while (p != NULL){
        if (L->tamanho % 2 == 0){
          anterior->prox = no->prox;
          L->tamanho--;
        }
        else {
          anterior->prox = no->prox;
          L->tamanho--;
        }
      }
    }
}

Struct _no, _produto e _lista (não tá na ordem, mas está aqui):
 

typedef struct _produto {
    int num_serie; // numero de série do produto
    char nome[64];
    double preço;
} Produto;

// struct que define um nó curcular duplamente encadeado
typedef struct _no {
    Produto *prod;
    struct _no *prox;
} No;

// struct que define uma Lista Ligada Simples
typedef struct _lista {
    No *inicio;
    No *fim;
    int tamanho; // numero de nós da lista
} Lista;

 

Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148894
    • Total Posts
      644916
×
×
  • Create New...