-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathterceiroDesafio.js
87 lines (77 loc) · 2.7 KB
/
terceiroDesafio.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
class Produto {
constructor(nome, codigo,preco, quantidade) {
this.nome = nome;
this.codigo = codigo;
this.preco = preco;
this.quantidade = quantidade;
this.proximoProduto = null;
this.produtoAnterior = null;
}
}
class ListaDeProdutos {
constructor() {
this.head = null;
this.tail = null;
}
adicionarProduto(nome, codigo, preco,quantidade){
let novoProduto = new Produto(nome,codigo,preco,quantidade);
if(this.head ===null){
this.head = novoProduto;
this.tail = novoProduto;
}else {
this.tail.proximoProduto = novoProduto;
novoProduto.produtoAnterior = this.tail;
this.tail = novoProduto;
}
}
listarProdutos(){
let produto = this.head;
if(produto === null){
console.log("Não há produtos cadastros")
}else {
while(produto !== null){
console.log(`Produto: ${produto.nome}, Código : ${produto.codigo}, Preço: ${produto.preco}, Quantidade em estoque: ${produto.quantidade}`)
produto = produto.proximoProduto;
}
}
}
removerProduto(codigo){
let produto = this.head;
while(produto !== null){
if (produto.codigo === codigo){
if (produto === this.head && produto === this.tail){
this.head = null;
this.tail = null;
}
else if(produto ===this.head){
this.head = this.head.proximoProduto;
this.head.produtoAnterior = null;
}
else if( produto === this.tail){
this.tail = this.tail.produtoAnterior;
this.tail.proximoProduto =null;
}
else {
produto.produtoAnterior.proximoProduto = produto.proximoProduto;
produto.proximoProduto.produtoAnterior = produto.produtoAnterior
}
return;
}
produto=produto.proximoProduto;
}
}
getProducts(codigo){
if (this.head ===null){
console.log("Não há produtos cadastrados !")
}else {
let produto = this.head;
while(produto !== null && produto.proximoProduto !== null){
if(produto.codigo === codigo){
console.log(`Produto: ${produto.nome}, Código : ${produto.codigo}, Preço: ${produto.preco}, Quantidade em estoque: ${produto.quantidade}`)
}
produto=produto.proximoProduto
}
}
}
}
let listaProdutos = new ListaDeProdutos();