-
Posts
4 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por paulopimenta6
-
-
Estou novamente estudando estruturas de dados e resolvi usar como base um livro de estrutura de dados usado JavaScript. O código inicial de linkedList.js está assim:
import {defaultEquals} from '../util/util.js'; import { Node } from './models/linked-list-models.js'; export default class linkedList{ //Aqui ficara o construtor... constructor(equalsFn = defaultEquals){ this.count = 0; this.head = undefined; this.equalsFn = equalsFn; } //Aqui comecam os metodos... push(element){ const node = new Node(element); let current; console.log(this.head); if (this.head == null){ this.head = node; } else{ current = this.head; while(current.next != null){ current = current.next; } current.next = node; } this.count++; } } let a = new linkedList(); a.push(1); a.push(2); a.push(3); a.push(4);
E o código da classe linked-list-models.js a qual é usada pelo método push está assim:
export class Node { constructor(element){ this.element = element; this.next = undefined; } }
E o código de util.js (não usando no momento) está assim:
export function defaultEquals(a, b){ return a === b; //exporta o valor de comparacao entre dois valores em um booleano }
A minha dúvida é simples, pois não consigo entender como o atributo this.head é atualizado e como ele se torna uma lista encadeada, pois somente node e current/current.next são atualizados.
Agradeço a todos desde já!
PS: Em anexo segue um zip com os códigos e um print da saída no visual code que me deixa com bastante dúvida. -
Estou dando os meus primeiros passos no SQL e estou com dificuldade ao montar uma query.
Tenho duas tabelas e a primeira (tab1) possui o código da cidade (CodCid) e o nome da cidade (NumCid). A segunda (tab2) possui os códigos das cidades de origem e destino (CodCidOrig e CodCidDest).
Como estou montando uma query grande e preciso ter o nome das cidades de destino e origem para outros processos fiz: <select NumCid as cidade_de_origem, NumCid as cidade de destino from tab1 inner join tab2 on CodCid in (CodCidOrig, CodCidDest)>
Usando esta query cria-se uma coluna em que a primeira linha são duas cidades iguais de origem, em seguida com duas cidades iguais de destino e assim por diante, tendo o mesmo padrão (duas origens iguais e duas de destino iguais).
O banco é relacional então CodCid é igual a CodCidOrig e CodCidDest.
-
Olá pessoal,
Estou estudando linguagem C e fiquei com dúvida com relação a ponteiros e estruturas e isso gerou um erro de segmentação em meu código. Criei uma função que recebe um estrutura e um valor constante, verifica se a estrutura está vazia e faz a inserção do valor constante em uma das variáveis e posteriormente cria um nó. O problema é que só consigo imprirmir o valor da variável inteira dentro da função, enquanto que na função "main" aparece o erro de segmentação. Abaixo segue o código:
#include <stdlib.h> #include <stdio.h> struct Lista *insere_final(struct Lista *n, int x); //prototipo da funcao struct Lista{ int valor; struct Lista *proximo; //ponteiro para a proxima entrada da lista //uso de recursividade. Uma struct dentro de outra }; int main(){ struct Lista *inicio; insere_final(inicio, 10); printf("O valor fora da funcao de inicio->valor e: %d \n", inicio->valor); return 0; } struct Lista *insere_final(struct Lista *n, int x){ struct Lista *novo=(struct Lista *)malloc(sizeof(struct Lista)); //alocou memoria dinamicamente para a lista novo->valor=x; if(n==NULL){//lista nao esta vazia printf("n esta vazio! \n"); novo->proximo=NULL; printf("1 - O valor dentro da funcao de novo->inicio: %d \n", novo->valor); return novo; //novo no sera o inicio da lista } else{//lista nao esta vazia-vamos ao final para inserir o no struct Lista *temp=n; //criando referencia ao primeiro no while(temp->proximo!=NULL){//e preciso ir ao ultimo no temp=temp->proximo; } novo->proximo=NULL; temp->proximo=novo;//o ultimo no apontara para o novo no printf("Entrou em else e esta verificando temp \n"); return n; } }
Desde já agradeço a todos que possam me ajudar!
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Lista encadeada usando JS/Node e POO
em Web e banco de dados
Postado
@GabrielSennaMs obrigado pela ajuda! Como ponteiro fica mais fácil visualizar a criação dos nós. Mas eu fico ainda com uma dúvida, dentro do "while" current e current.next são atualizados e não afetam this.head o qual só é modificado quando current.next recebe node.
Por quem current e current.next dentro do while não afetam this.head?