Jump to content
Sign in to follow this  
RedHot66

Linguagens com conceitos de TAD

Recommended Posts

Galera, tenho que desenvolver um trabalho com os conceitos de TAD (Tipo Abstrato de Dados) e só conheço a linguagem C que consegue fazer isso, vocês sabem outras linguagens que podem me dar esse mesmo conceito da linguagem C ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Sr.Hozuki
      Estou estudando listas em C, e sinceramente, estou achando a coisa mais difícil do mundo porque não sei bem a aplicação disso. Alguém sabe um livro ou pode ser até um pdf que mostre como funciona uma lista? Tipo, dando os conceitos e tal, mas mostrando um código que de para entender bem, porque nos livros que vi dão apenas o conceito e o cara que se vire para usar aquela coisa de tipo abstrato de dados, estou bem confuso D: Agradeço a quem ajudar
    • By guik12008
      Boa tarde,
      Estou com duvida nesse exercício e não sei nem por onde começar.
      Construir um TAD FilaClientes, conforme a especificação abaixo.

      1. Trata-se de uma fila construída sobre lista encadeada
      2. Deve ser uma fila de Clientes, e cliente deve ser uma estrutura contendo:
      - nome (char[])
      - idade (int)
      - CFP (int)
      2. Cada node da fila deve ter um ponteiro para um Cliente e um ponteiro para o próximo node
      3. Recomenda-se a utilização de uma estrutura HEADER (FilaCliente) para definir a Fila
      4. A TAD FilaCliente deve implementar as seguintes operações:
      - FilaCliente * criaFilaCliente()
      -> Cria fila vazia
      - int enqueue2(FilaCliente *fila, Cliente *cliente)
      -> Enfileira (insere) cliente já instanciado
      - int enqueue(FilaCliente *fila, char nome[], int idade, int cpf)
      -> Enfileira (insere) cliente com base em seus dados
      - Cliente * dequeue(FilaCliente *fila)
      -> Desenfileira (remove) cliente da fila e o retorna
      - Cliente * head(FilaCliente *fila)
      -> Retorna dados (referência) do primeiro cliente da fila, sem removê-lo
      - Cliente * tail(FilaCliente *fila)
      -> Retorna dados (referência) do último cliente da fila, sem removê-lo
      - void imprimeFila(FilaCliente *fila)
      -> Função para teste, deve imprimir os dados dos clientes na fila, do primeiro para o último
      Grato desde já.
    • By crookedthing
      Pessoal, eu tenho que criar uma lista encadeada que permita inserir e remover dados organizando-os em ordem alfabética( de acordo com o nome inserido). Consigo fazer isso em código comum, mas usando listas fica muito difícil. Estou tendo muita dificuldade. Envio o código, mas não compila, está cheio de falhas que eu não faço ideia de como solucionar. Obrigado.
       
      Este é o código onde desenvolvo as listas e as estruturas
      #include<stdilib.h> #include<stdio.h> #include<string.h> //nodo principal do código struct nodo{ int matricula; char nome[40]; float nota; struct nodo *prox; }; //ponteiro para o nodo. Inicio da lista struct nodo *inicio;//variavel global, acessavel por todos //função de inserção de dados //data= dados, n=posição void insert(int matricula, char nome[40], float nota){ //variavel auxiliar. struct nodo *temp; //conferir alocação de memoria com a criação de um nodo //criar um ponteiro para o nodo struct nodo* novo = (struct nodo*)malloc(sizeof(struct nodo*)); if(novo==NULL){ printf("sem memoria!"); } //se read estiver fazia,enfia o valor em inicio. if inicio(==NULL){ novo->matricula= data;// preenche com o valor //FALTA PREENCHER O RESTO novo->prox = NULL;//a proxima posição aponta para null. inicio = novo;//inicio aponta para a 1º posição }else{ //se o inicio não estiver vazio, preenche o nodo novo->matricula; novo->nome; novo->nota; while(strcmp(temp->data,novo->data)>0){//substituir data aqui temp= temp->prox;//variavel temporaria aponta para o proximo. temp->prox = novo;//depois aponta para novo. } } } void Mostrar(){ struct nodo *aux = inicio; printf("INICIO: %p\n", inicio); while (aux != NULL) { printf("%p|%.2f|%s|%d\n", aux, aux->nota,aux->nome,aux->matricula); aux = aux->prox; } printf("\n"); } int Retirar(){ struct nodo *aux, *auxOld; if (inicio == NULL) return 0; /// Percorrer a lista ate o fim aux = inicio; auxOld = NULL; while (aux->prox != NULL) { auxOld = aux; aux = aux->prox; } free(aux); auxOld->prox = NULL; return 1; }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.