2007 2 Uern Santa Cruz Ed

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

Resultados das Avaliações

Links

Ementa

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

Agenda

Data Conteúdo Trabalho
14/11/2007 AULA 01(4) - Apresentação da Disciplina, Revisão Ponteiros
21/11/2007 AULA 02(8) - Programação em C usado .h, Listas Lineares e Alocação Dinâmica
28/11/2007 AULA 03(12) - Pilhas Estáticas e Dinâmicas
05/12/2007 AULA 04(16) - Filas Estáticas e Dinâmicas
12/12/2007 AULA 05(20) - Resolução dos Trabalhos
19/12/2007 AULA 06(24) - Revisão - I Prova
23/01/2008 AULA 07(28) - Entrega de Notas -Introdução a Árvores
30/01/2008 AULA 08(32) - Árvores Binárias
06/02/2008 - Não houve Aula (Quarta-feira de Cinzas)
13/02/2008 AULA 09(36) - Árvores Binárias de Busca, Inserção
20/02/2008 - Não houve Aula (Motivo: Defesa da Tese)
27/02/2008 AULA 10(40) - Busca, Máximo, Mínimo, Sucessor, Remoção
05/03/2008 AULA 11(44) - II Prova
12/03/2008 AULA 12(48) - Balanceamento de Árvores
19/03/2008 AULA 13(52) - Tabelas Hash
26/03/2008 AULA 14(56) - Complexidade De Algoritmos
02/04/2008 AULA 15(60) - Revisão / III Prova
09/04/2008 AULA 16(64) - IV Prova

12/12/2007 - Filas

fila.h

typedef struct elemento {
   int valor;
   struct elemento * proximo;
} elemento;
 
typedef struct fila {
  int tamanho;
  struct elemento * inicio;
  struct elemento * fim;
} fila;
 
void enqueue(int item, fila * f);
elemento * dequeue(fila * f);

fila.c

#include <stdio.h>
#include "fila.h"
 
void enqueue(int item, fila* f) {
   if(f->inicio == NULL) {
      f->inicio = malloc(sizeof(elemento));
      f->fim = f->inicio;
      f->inicio->valor = item;
      f->inicio->proximo = NULL;
      printf("Enfileirando:%i\n",f->inicio->valor);
   }else {
     f->fim->proximo = malloc(sizeof(elemento)); 
     f->fim = f->fim->proximo;
     f->fim->valor = item;
     f->fim->proximo = NULL;
     printf("Desenfileirando:%i\n",f->fim->valor);
   }
   f->tamanho = f->tamanho+1;
}
 
elemento * dequeue(fila *f) {
   if(f->inicio==NULL) {
      printf("Fila Vazia!!!");
      return NULL;
   }else {
      elemento * temp = f->inicio;
      f->inicio = f->inicio->proximo;
      printf("Desenfileirando: %i\n",temp->valor);
      return temp;
   }
}

28/11/2007 - Pilhas

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(pilha));
      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.