2007.2 UERN Nova Cruz ED

Professor: Aquiles Burlamaqui
email: moc.liamg|iuqamalrubseliuqa#moc.liamg|iuqamalrubseliuqa

Resultados das Avaliações

Links

Ementa

  • Introdução.
  • Listas lineares.
  • Pilhas
  • Filas.
  • Grafos.
  • Árvores.
  • Árvores balanceadas.
  • Listas de prioridade.
  • Tabelas de dispersão.
  • Busca digital.
  • Alocação Dinâmica.

Agenda

Data Conteúdo Trabalho
22/11/2007 AULA 01(4) - Apresentação da Disciplina, Revisão Ponteiros
29/11/2007 AULA 02(8) - Revisão de Ponteiros e Listas Dinâmicas
06/12/2007 AULA 03(12) - Pilhas Estáticas e Dinâmicas
13/12/2007 Feriado
20/12/2007 AULA 04(16) - Filas Estáticas e Dinâmicas I
24/01/2008 AULA 05(20) - Introdução a Árvores, Árvores Binárias, Inserção, Implementação Estática e Dinâmica
31/01/2008 AULA 06(24) Prova I
07/02/2008 - Não houve Aula (Carnaval)
14/02/2008 - Não houve Aula (Motivo: Defesa da Tese)
21/02/2008 AULA 07(28) - Introdução a Árvores, Inserção
28/02/2008 AULA 08(32) - Entrega de Notas - Árvores Binárias, Percurso, Busca
06/03/2008 AULA 09(36) - Máximo, Mínimo e Sucessor
13/03/2008 AULA 10(40) - Remoção
20/03/2008 AULA 11(44) - II Prova
27/03/2008 AULA 12(48) - Balanceamento de Árvores
03/04/2008 AULA 13(52) - Tabelas Hash
10/04/2008 AULA 14(56) - Complexidade
17/04/2008 AULA 15(60) - III Prova
18/04/2008 FIM DO SEMESTRE -
29/11/2007

Os alunos devem comentar cada linha de código abaixo e trazer o código comentado próxima aula.

#include <stdio.h>
 
typedef struct Elemento{
   int valor;
   struct Elemento *proximo;
} Elemento; 
 
Elemento * inserir(int item, Elemento *e) {
   Elemento * begin = e;
   if(e == NULL) { 
      e = malloc(sizeof(Elemento));
      e->valor = item; 
      e->proximo = NULL;
      return e;
   }else {
       while(e->proximo != NULL) {
          e = e->proximo;
       }
       e->proximo = malloc(sizeof(Elemento));
       e = e->proximo;
       e->valor = item;
       e->proximo = NULL;
       return begin;
   }
 
}
 
void imprimir(Elemento* e) {
   int contador = 0;
   Elemento* temp = e;
   if(temp == NULL) {
      printf("Lista Vazia\n");
   }else {
      while(temp != NULL) {
         printf(" %i->%i |",contador, temp->valor);
         temp = (Elemento*)temp->proximo;
         contador++;
      }
   }
 
}
 
int main() {
   Elemento* lista = NULL;
   lista = inserir(10, lista); 
   lista = inserir(15, lista);
   lista = inserir(20, lista); 
   lista = inserir(25, lista);  
   imprimir(lista); 
 
   return 0; 
}
06/12/2007

pilha.h

typedef struct elemento {
   int valor;
   struct elemento* proximo;
}elemento;
 
typedef struct pilha {
   int tamanho;
   elemento * topo;
} pilha;
 
void push(int item, pilha *p);
elemento * pop(pilha * p);

pilha.c

#include "pilha.h"
#include <stdio.h>
 
void push(int item, pilha *p) {
 
   if(p->topo==NULL) {
      p->tamanho = 1;
      p->topo = malloc(sizeof(elemento));
      p->topo->valor = item;
      p->topo->proximo = NULL;
      printf("Tava vazio, coloquei o primeiro: %i\n",item);
   }else {
      elemento * temp = p->topo;
      p->topo = malloc(sizeof(pilha));
      p->topo->valor = item;
      p->topo->proximo = temp;
      printf("Empilhei mais um...:%i\n",item);
   }      
}
 
elemento* pop(pilha *p) {
  if(p->topo==NULL) {
     printf("PILHA VAZIA!!!\n");
     return NULL;
  }else {  
     elemento * temp = p->topo;
     p->topo = p->topo->proximo;
     p->tamanho = p->tamanho - 1;
     printf("POP()!!! %i \n",temp->valor);
     return temp;
  }
}

main.c

#include <stdio.h>
#include "pilha.h" 
 
int main() {
 
   printf("Estrutura de Dados\n");
   printf(" ## PILHA ##\n");
   pilha p1;
   p1.tamanho = 0;
   p1.topo = NULL;
   push(10,&p1);
   push(15,&p1);
   push(20,&p1);
   pop(&p1);
   pop(&p1);
   pop(&p1);
   pop(&p1);
}
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.