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