Ir para conteúdo
Gabriel757

lista encadeada

Recommended Posts

Ola!!

Bom dia!!

Gostaria de sua nesse trabalho que estou fazendo estou como muita dificuldade pra fazer. Você pode me ajudar??

 

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>

int menu(void){
        int opt;
        printf("Escolha a Opcao \n");
        printf("1. Criar Lista \n");
        printf("2.Inserir na Lista \n");
        printf("3. Imprimir Lista \n");
        printf("4. Separar Lista \n");
        printf("5. Deletar \n");
        printf("6. Sair \n");
        printf("Opcao:");
        scanf("%d", &opt);
        return opt;
    }

struct NO{
    int elemento;
    struct NO *prox;
};    
typedef struct{
    struct NO *inicio;
}lista;
    int tam;

void init(lista *lista) {    
    lista->inicio = NULL;     
    tam=0;     
}

void insere(lista **topo, int ls){
    lista *novo;
    struct NO **novo = (struct NO*) malloc(sizeof(struct NO));
    novo->elemento = ls;
    if(*topo==NULL){
        novo->prox = NULL;
        *topo = novo;
    }else{
        novo->prox = *topo;
        *topo = novo;
    }
}

void imprime(lista **topo){
    lista *aux;
    aux = topo;
    if(aux = NULL){

    }else{
        do{
            printf("%d", aux->elemento);
            aux = aux->prox;
        }while(aux!=NULL);
    }
}

void separar(){

}

main(){
    init(&ls);
    lista *topo = NULL;
    insere(&topo);
    imprime(topo);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Lucas Topázio
      Boa Tarde Pessoal, Sou leigo em PHP e consegui fazer um código vendo vídeo aula no youtube de como exibir uma lista de arquivos que tem dentro de uma pasta, porem gostaria que ao clicar no nome do arquivo ele automaticamente fizesse o download do próprio que esta dentro da pasta.
       
      Segue o Codigo que tenho:
      <?php $pasta = 'catalogos'; $listar = new RecursiveDirectoryIterator($pasta); $recursivo = new RecursiveIteratorIterator($listar); foreach($recursivo as $obj){ Echo $obj->getFilename().'<br />'; }  
    • Por AlexandreHenrique
      Olá,
      quero criar uma lista de itens montada com js:
      Onde teremos um campo, e através de click cada valor do input será adicionado num lista.
      Quero também que seja possível apagar cada item da lista.
       
      Fiz dois scripts mas, não estão completos.
      Alguém pode me ajudar?

      Exemplo1:
      Nesse exemplo o único problema é que cada item deveria fica um abaixo do outro.

       
      <style> .lista{ border:1px solid red;  } </style> <input type="text" id="item"> <button onclick="myFunction()">ADD</button> <p id="demo"></p>        <script> var lista = [];     document.getElementById("demo").innerHTML = lista;                 function myFunction() { var item = document.getElementById("item").value;    lista.push(item);    document.getElementById("demo").innerHTML = "<input type='text' id='i' onclick='myFunctionR()' class='lista' value='" +  lista  + "'></div>";              }                 function myFunctionR() {    lista.pop();      document.getElementById("demo").innerHTML = "<div onclick='myFunctionR()' class='lista'>" + lista + "</div>";     } </script>  
      Exemplo 2:
      Nesse exemplo, consegui ter cada item da lista em uma div separadamente, mas não consegui remover um item por vez.
       
       
      <style> .lista{ border:1px solid red; } </style> <script> var i = 1;     function escreve(){ var txt_pre_definido = document.getElementById('x').value;         var t= document.getElementById("texto").innerHTML += "<div class='lista' id='" +i+ "' onclick='apaga(" +i+ ")'>" + txt_pre_definido+"</div>";         i++;      }                     function apaga(v){ //t.pop(v);     document.getElementById(t).innerHTML="";     } </script>          <input type="text" id="x"  /> <input type="button" value="OK" onclick="escreve()"  />          <div id="texto" onclick="apaga();"></div>  
       
       
       
       
       
    • Por PapaiJonh
      Ola, pessoal.
      Estou trabalhando com Web Form e usando SQL como banco de dados.
      Eu tenho um data grid com todos os Professores do meu banco e preciso atualizar essa lista de acordo com as condições.
      a duvida é a seguinte, fiz um CheckBoxList com algumas matérias e estou na duvida de como fazer o select passando por exemplo 3 matérias.
      //Esse é o método que chama o Buscar passando os parâmetros. protected void DdProfessores_SelectedIndexChanged(object sender, EventArgs e)         {             Professor p = new Professor();             dgProfessores.DataSource = p.Buscar_Selecionado(DdProfessores.SelectedValue, RbSexo.SelectedValue, ChbMaterias.SelectedValue);             dgProfessores.DataBind();                      } //Esse é o método do buscar public DataSet Buscar_Selecionado(String n, String s, String m)//Funciona         {             DataSet ds = new DataSet();             SqlConnection com = new SqlConnection("Data Source=JOHN-PC;Initial Catalog=FACEAR;Integrated Security=True");//conexão com o banco             com.Open();             string comando_sql = "select * from PROFESSOR where Id = @Id  and Sexo = @Sexo and Materia = @Materia";//string do comando SQL a ser utilizado             SqlCommand comando = new SqlCommand(comando_sql, com);// intanciando um SqlCommando com a QUERY e a coneção             SqlDataAdapter da = new SqlDataAdapter(comando); //             comando.Parameters.Add("@Id", SqlDbType.Int);             comando.Parameters["@Id"].Value = n;             comando.Parameters.Add("@Sexo", SqlDbType.VarChar);             comando.Parameters["@Sexo"].Value = s;             comando.Parameters.Add("@Materia", SqlDbType.VarChar);             comando.Parameters["@Materia"].Value = m;             SqlDataReader dr = comando.ExecuteReader();             dr.Close();             da.Fill(ds);             return ds;         }  
    • Por suelystonn
      Fala pessoal!
       
      Tenho as seguintes listas:
      list1=['01', '02', '03'] list2=['02', '03', '04'] list3=['04', '05', '03'] list4=['05', '07', '06'] list5=['08', '06', '07'] Preciso gerar novas listar randômicas a partir delas, mas com algumas condições:
       
      As novas listas que irão receber os valores devem ser divididas por bloco, onde o bloco 1 deve receber somente itens da list1, bloco 2 deve receber somente itens da list2, e assim sucessivamente, gerando listas até esgotar as possibilidades. Detalhe que os valores não podem se repetir, ou seja, se o bloco 1 recebeu o item "02" da list1, o bloco 2 não pode receber o item "02" novamente, mesmo que faça parte da list2.
       
      Segue ex:
      ____________                
      |        01        |
      |___________|
      ____________                
      |        03        |
      |___________|
      ____________                
      |        05        |
      |___________|
      ____________                
      |        07       |
      |___________|
      ____________                
      |        08       |
      |___________|
       
      Dessa forma, estaria gerando a lista:
       
      ['01', '03', '05', '07', '08']  
      Agradeço quem puder me ajudar.
    • Por Bruno Rafael
      Programa está inserindo normalmente, mais não está ordenando e nem mostrando os itens ordenados. 
       
      obs1: Usando bubblesort
      obs2: ordenando primeiro por nome e depois por idade
       
      #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct lista { int qtd; struct Aluno * inicio; }lista; typedef struct Aluno { char nome[30]; int idade; struct Aluno * prox; }Aluno; lista * aloca_lista(); Aluno * aloca_aluno(); int inserir(lista *l, char * nome, int idade); void mostrar(lista *l); int main() { char aux[30]; int i,aux2,aux3,aux4,tam=3,pass,trocou; Aluno * aluno[3]; lista * l1; l1 = aloca_lista(); aux4 = l1->inicio; int idade; char nome[30]; for(i=0; i<3; i++) { printf("\nDigite o nome do aluno[%d]: ",i+1); fflush(stdin); gets(nome); printf("\nDigite o numero: "); fflush(stdin); scanf("%d",&idade); inserir(l1,nome,idade); } trocou = 1; for(pass=0; pass<tam-1 && trocou==1; pass++) { trocou = 0; for(i=0; i<tam-pass-1; i++) { if(strcmp(aluno[i]->nome,aluno[i+1]->nome) == 0) { if(aluno[i]->idade > aluno[i+1]->idade) { aux2 = aluno[i]->idade; aluno[i]->idade = aluno[i]->prox->idade; aluno[i]->prox->idade = aux2; strcpy(aux,aluno[i]->nome); strcpy(aluno[i]->nome,aluno[i+1]->nome); strcpy(aluno[i+1]->nome,aux); trocou = 1; } } else if(strcmp(aluno[i]->nome,aluno[i+1]->nome)>0) { aux3 = aluno[i]->idade; aluno[i]->idade = aluno[i+1]->idade; aluno[i+1]->idade = aux3; strcpy(aux,aluno[i]->nome); strcpy(aluno[i]->nome,aluno[i+1]->nome); strcpy(aluno[i+1]->nome,aux); trocou = 1; } } } printf("\nmostrando:\n\n"); mostrar(l1); return 0; } lista * aloca_lista() { lista * novo; novo = (lista*)malloc(sizeof(lista)); novo->qtd = 0; novo->inicio = NULL; return novo; } Aluno * aloca_aluno() { Aluno * novo; novo = (Aluno*)malloc(sizeof(Aluno)); novo->idade = 0; strcpy(novo->nome," "); novo->prox = NULL; return novo; } int inserir(lista *l,char * nome, int idade) { Aluno * novo, * aux; novo = aloca_aluno(); novo->idade = idade; strcpy(novo->nome,nome); if(l->inicio == NULL) { l->inicio = novo; } else { aux = l->inicio; while(aux->prox != NULL) { aux = aux->prox; } aux->prox = novo; } l->qtd++; return 1; } void mostrar(lista *l) { Aluno * aux; aux = l->inicio; while (aux != NULL) { printf("\nNome: %s",aux->nome); printf("\nIdade: %d",aux->idade); aux = aux->prox; } }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.