2008 2 Uern Santacruz Ed

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

Links

Notas

Ementa

  • Introdução.
  • Alocação Dinâmica.
  • Pilhas
  • Filas.
  • Árvores.
  • Árvores balanceadas.
  • Tabelas de dispersão.
  • Busca.
  • Complexidade

Agenda

Data Conteúdo Trabalho
30/10/2008 AULA 01(4) - Apresentação da Disciplina
06/11/2008 Trote
13/11/2008 AULA 02(8) - Pilha Estática e Pilha Dinâmica
20/11/2008 Não houve aula - Reunião do Estatuto da UERN
27/11/2008 AULA 03(12) - Continuação Pilha Dinâmica - Pilha & Implementação no Laboratório T1
04/12/2008 Não Houve Aula - Concurso
11/12/2008 Aula 04(16) - Fila T2
18/12/2008 Aula 05(20) - Revisão, I Avaliação Escrita & Entrega dos Trabalhos E1

Pilha Estática

#include<stdio.h>
int stack[10]; 
int top = -1;
int op;
 
void push(int v){
   top++;
   stack[top] = v;
}
 
int pop(){
   if(top==-1) {
      printf("Pilha Vazia\n");
      return -1;
   }
   else {
     int temp = stack[top];
     top--;
     return temp;
   }
}
 
void menu() {
   printf("\t\tPILHA ESTATICA\n");
   printf("1 - Push()\n");
   printf("2 - Pop()\n");
   printf("3 - Print()\n");
   printf("4 - Sair()\n");
   scanf("%i",&op);
}
 
int main() {
   system("clear");
   int i, flag;
   flag=1;
   while(flag) {
      menu();
      switch(op) {
         case 1: 
             printf("Entre com o valor a ser inserido:\n");
             scanf("%i",&op);
             push(op);
             break;
         case 2:
             printf("Valor retirado:%i\n",pop()); 
             break;
        case 3:
             printf("Pilha:\n");
             printf("  TOPO: %i\n",top); 
             for(i=0;i<10;i++) {
                printf("  stack[%i]=%i\n",i,stack[i]);
             }
             break;
         case 4: 
             printf("tchau!!!\n");
             flag=0;
             break;
         default:
             printf("Opção Inválida\n");
             break;
      }
   }
}

Fila Dinâmica

#include <stdio.h>
#include <stdlib.h>
 
typedef struct element{ 
   int value;
   struct element *next;
}element;
 
typedef struct queue{
   int size;
   struct element *head;
   struct element *tail;
}queue;
 
void enqueue(queue *s,int t){
   if(s->size==0){
    s->head=malloc(sizeof(element));
    s->tail=s->head;
    s->head->value=t;
    s->head->next=NULL;
    s->size++;
   }else{
     element *temp;
     temp=s->tail;
     s->tail=malloc(sizeof(element));
     temp->next=s->tail;
     s->tail->next=NULL;
     s->tail->value=t;
     s->size++;
   }
}
int dequeue(queue *p){
   if(p->size==0){
    printf("empty queue");
    return 0;
   }
   element *temp;
   temp=p->head;
   p->head=temp->next;
   p->size--;
   if(p->size==0){
     p->tail=NULL;
   }
   int x=temp->value;
   free(temp);
   return x;
}
 
int main(){
   queue fila;
   fila.size=0;
   fila.head=NULL;
   fila.tail=NULL;
   enqueue(&fila,6);
   enqueue(&fila,5);
   printf("Saindo:%i\n",dequeue(&fila));
}
Add a New Comment
or Sign in as Wikidot user
(will not be published)
- +
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.