Ir para conteúdo
Fórum Script Brasil
  • 0

Automato Pilha Em C


jessi1412

Pergunta

Boa noite, 

Preciso fazer um automato de pilha que seja capaz de reconhecer a seguinte linguagem:

L2 = {0n1mnonde n e m são inteiros maiores ou iguais a 1} .

a linguagem acima gera a seguinte sequencia L2={Σ, 010, 001100, 000111000...}.

Alguém pode me ajudar?

Abaixo o código para criar a pilha, o que eu preciso é algum teste que reconheça a sequencia L2={Σ, 010, 001100, 000111000...}

#include <stdio.h>

#include <stdlib.h>

[size=2]Struct no {[/size]

  int info;

  struct no* prox;

};

typedef struct no No;




struct pilha {

  No* prim;

};

typedef struct pilha Pilha;




Pilha *pil;

//********************************************************************************************************************

// Funcao para criação da pilha

Pilha* cria (void) {

  Pilha* p = (Pilha*) malloc(sizeof(Pilha));

  p->prim = NULL;

  return p;

}




// Função que inserir a pilha no inicio

No* ins_ini (No* l, int v) {

  No* p = (No*) malloc(sizeof(No));

  p->info = v;

  p->prox = l;

  return p;

}




// Funcao auxiliar: retira do inicio da pilha

 No* ret_ini (No* l) {

  No* p = l->prox;

  free(l);

  return p;

}




// Insercao na pilha;

void push (Pilha* p, int v) {

  p->prim = ins_ini(p->prim,v);

}




// Funcao q remove da pilha

int pop (Pilha* p) {

  int v;

  if (vazia(p)) {

    printf("Pilha vazia.\n");

    exit(1); /* aborta o programa */

  }

  v = p->prim->info;

  p->prim = ret_ini(p->prim);

  return v;

}




// Funcao auxiliar q verifica se a pilha esta vazia

int vazia (Pilha* p) {

  return (p->prim==NULL);

}




void libera (Pilha* p) {

  No* r = p->prim;

  while (r!=NULL) {

    No* t = r->prox;

    free(r);

    r = t;

  }

  free(p);

}

// Funcao que exibe todos os elementos da pilha

Desde já grata. No aguardo. Me ajudem estou desesperada

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...