def insereNoComeco(self, valor): novoNo = No(valor) if self.isEmpty(): self.primeiroNo = self.ultimoNo = novoNo else: novoNo.setProx(self.primeiroNo) self.primeiroNo = novoNo
def add_first(self, valor): no = No(valor) no.proximo = self.inicial self.inicial = no proximo = self.inicial.proximo proximo.anterior = no
def Exp1Linha(self): noExp1Linha = No() # Exp1’ -> < Exp2 Exp1’ | <= Exp2 Exp1’ | > Exp2 Exp1’ | >= Exp2 Exp1’ | == Exp2 Exp1’ | != Exp2 Exp1’ if (self.eat(Tag.OP_LT) or self.eat(Tag.OP_LTE) or self.eat(Tag.OP_GT) or self.eat(Tag.OP_GTE) or self.eat(Tag.OP_EQ) or self.eat(Tag.OP_NE)): noExp2 = self.Exp2() noExp1LinhaFilho = self.Exp1Linha() if (noExp1LinhaFilho.getTipo() in (Tag.TIPO_VAZIO, noExp2.getTipo()) and noExp2.getTipo() == Tag.NUMERICO): noExp1Linha.setTipo(Tag.NUMERICO) else: noExp1Linha.setTipo(Tag.ERROR) return noExp1Linha elif (self.token.getNome() in (Tag.KW_OR, Tag.KW_AND, Tag.KW_CLS_PARENTH, Tag.KW_SCORE_COMMA, Tag.KW_COMMA)): noExp1Linha.setTipo(Tag.TIPO_VAZIO) return noExp1Linha else: self.sinalizaErroSintatico( 'Esperado "< , <= , > , >= , == , !=", encontrado ' + '"' + self.token.getLexema() + '"') noExp1Linha.setTipo(Tag.ERROR) return noExp1Linha
def addFirst(self, valor): if self.tail is None: self.head = self.tail = No(valor) else: novo = No(valor) novo.proximo = self.head self.head = novo
def Exp2Linha(self): noExp2Linha = No() # Exp2’ -> + Exp3 Exp2’ | - Exp3 Exp2’ if (self.eat(Tag.OP_ADD) or self.eat(Tag.OP_SUB)): noExp3 = self.Exp3() noExp2LinhaFilho = self.Exp2Linha() if (noExp2LinhaFilho.getTipo() in (Tag.TIPO_VAZIO, noExp3.getTipo()) and noExp3.getTipo() == Tag.NUMERICO): noExp2Linha.setTipo(Tag.NUMERICO) return noExp2Linha else: #### noExp2Linha.setTipo(Tag.ERROR) return noExp2Linha elif (self.token.getNome() in (Tag.OP_LT, Tag.OP_LTE, Tag.OP_GT, Tag.OP_GTE, Tag.OP_EQ, Tag.OP_NE, Tag.KW_OR, Tag.KW_AND, Tag.KW_CLS_PARENTH, Tag.KW_SCORE_COMMA, Tag.KW_COMMA)): noExp2Linha.setTipo(Tag.TIPO_VAZIO) return noExp2Linha else: self.sinalizaErroSintatico('Esperado "+ , -", encontrado ' + '"' + self.token.getLexema() + '"') noExp2Linha.setTipo(Tag.ERROR) return noExp2Linha
def append(self, valor): if self.inicial is None and self.final is None: self.inicial = self.final = No(valor) else: self.final.proximo = no = No(valor) no.anterior = self.final self.final = self.final.proximo
def adicionar(self, valor): no = No( valor ) if self.tamanho == 0: self.topo = no else: no.proximo = self.topo self.topo = no self.tamanho += 1
def inserir(self, valor): no = No(valor) if self.tamanho == 0: self.inicio = no else: no.proximo = self.inicio self.inicio = no self.tamanho += 1
def push(self,elemento): inserido = No(elemento) if(not self.topo): self.topo = inserido else: topo_antigo = self.topo inserido.proximo = topo_antigo self.topo = inserido
def push(self, valor): if self.is_full() is False: no = No(valor) no.proximo = self.inicial self.inicial = no self.quantidade += 1 else: raise ErroNaPilha()
def addpilha(self, valor): no = No(valor) if self.verificavazio(): self.primeiro = no else: aux = self.primeiro self.primeiro = no no.proximo = aux self.tamanho += 1
def addFinal(self, e): """Insere elemento no FINAL da lista""" self.indice = None # eu digo que o indice é vaziu e insiro na lista no inicio da listaencadeada if self._rabo is None: self._cabeca = self._rabo = No(e) else: self._rabo.proximo = No(e) self._rabo = self._rabo.proximo self.size += 1 # incrementa o valor que já existia no size
def push_back(self, valor): if self.full is False: if self.inicial is None and self.final is None: self.inicial = self.final = No(valor) else: self.final.proximo = no = No(valor) no.anterior = self.final self.final = self.final.proximo self.quantidade += 1
def adicionarNoFinal(self, valor): if self.fim: aux = self.fim while (aux.anterior): aux = aux.anterior aux.anterior = No(valor) else: self.fim = No(valor) self.tamanho += 1
def append(self, valor): if self.inicial is None and self.final is None: self.inicial = self.final = No(valor) else: self.final.proximo = no = No(valor) no.anterior = self.final self.final = self.final.proximo self.quantidade_de_itens += 1 self._organize()
def add(self,no): q = No(no) p = self._head if p == None: self._head=q else: while p.get_prox() != None: p=p.get_prox() p.set_prox(No(q))
def stack_push(self, value): no = No(value) if self.is_empty(): self.top = no else: aux = self.top self.top = no no.next = aux self.size += 1
def adicionar (self, valor): if self.inicio: aux = self.inicio while(aux.proximo): aux = aux.proximo aux.proximo = No(valor) else: self.inicio = No(valor) self.tamanho = self.tamanho +1
def adicionar(self, valor): no = No(valor) if self.listaVazia(): self.inicio = no self.fim = no else: no.anterior = self.fim no.proximo = None self.fim.proximo = no self.fim = no
def adicionar(self, elemento): #adiciona elementos ao fim da lista if self.primeiro: ponteiro = self.primeiro while(ponteiro.proximo): ponteiro = ponteiro.proximo ponteiro.proximo = No(elemento) else: self.primeiro = No(elemento) self.tamanho = self.tamanho +1
def adicionar(self, valor): no = No(valor) #No recebe o input do main if self.vazio( ): #Se a pilha estiver vazio o primeiro item a entrar nela é o valor inserido self.primeiro = no else: auxiliar = self.primeiro #Caso a pilha não estaja vazia ele inseri o valor digita sobre o valor anterior, tornando o como primeiro self.primeiro = no no.proximo = auxiliar self.tamanho += 1 #Concatena cada vez que adicionar um valor na pilha
def add_first(self, valor): no = No(valor) no.proximo = self.inicial self.inicial = no proximo = self.inicial.proximo proximo.anterior = no self.quantidade_de_itens -= 1 self.saltar = False self._organize()
def inserirNo2(self, noBase, value): if (value > noBase.value): if noBase.right is None: noBase.right = No(value, noBase) else: self.inserirNo2(noBase.right, value) else: if noBase.left is None: noBase.left = No(value, noBase) else: self.inserirNo2(noBase.left, value)
def addInicio(self, e): """Insere um valor no início da lista.""" # Cria um novo objeto do tipo "no" recebendo valor self.indice = None # eu digo que o indice é vaziu e insiro na lista no inicio da listaencadeada novo = No(e) if self._cabeca is None: self._rabo = novo else: novo.proximo = self._cabeca self._cabeca = novo self.size += 1 #incrementa o valor que já existia no size
def adicionarNoInicio(self, valor): no = No(valor) if self.tamanho == 0: self.inicio = no self.fim = no else: aux = self.inicio no.proximo = aux aux.anterior = no self.inicio = no self.tamanho += 1
def inserir(self, posicao, elemento): #insere um elemento na posição indicada, movendo os outros (caso preciso) no = No(elemento) if posicao == 1: no.proximo = self.primeiro self.primeiro = no else: ponteiro = self.getno(posicao-2) no.proximo = ponteiro.proximo ponteiro.proximo = no self.tamanho = self.tamanho + 1
def adicionarFim(self, valor): no = No(valor) if self.tamanho == 0: self.inicio = no self.fim = no else: aux = self.fim no.anterior = aux aux.proximo = no self.fim = no self.tamanho = self.tamanho + 1
def adicionarNoFim( self, valor ) : no = No( valor ) if self.tamanho == 0 : self.primeiro = no self.ultimo = no else: aux = self.ultimo no.anterior = aux aux.proximo = no self.ultimo = no self.tamanho += 1
def prepend(self, v): """Adiciona um nó no começo da lista""" #criar um nó com v no = No(v) #apontar para head if self.head is None: self.head = self.tail = no else: no.next = self.head #head apontar para novo nó self.head = no
def adicionar(self, valor): if self.inicio: cursor = self.inicio while cursor.proximo: cursor = cursor.proximo cursor.proximo = No(valor, cursor) self.fim = cursor.proximo else: self.inicio = No(valor, None) self.fim = self.inicio self.tamanho += 1
def push_front(self, valor): if self.full is False: if self.inicial is None and self.final is None: self.inicial = self.final = No(valor) else: no = No(valor) no.proximo = self.inicial self.inicial = no proximo = self.inicial.proximo proximo.anterior = no self.quantidade += 1