Repository navigation
Expand file tree
/
Copy pathlistSum.js
More file actions
156 lines (137 loc) · 3.54 KB
/
Copy pathlistSum.js
File metadata and controls
156 lines (137 loc) · 3.54 KB
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/* Liste Somme */
function ElemList(val){
this.val=val
this.suivant = null
}
function Liste(){
let tete = null
let longueur = 0
this.ajouter = function(elem){
let list = new ElemList(elem)
longueur++
if(tete==null){
tete=list
}
else{
let rechercheFin = function(list,elem){
if(list.suivant==null){
list.suivant = elem
}
else{
return rechercheFin(list.suivant,elem)
}
}
return rechercheFin(tete,list);
}
}
this.effacer = function (elem){
if(tete!==null){
if(tete.val==elem){
tete = tete.suivant
}
else{
let prec = tete;
let cour = prec.suivant
while(cour.val!=elem){
prec = cour
cour = cour.suivant
}
prec.suivant = cour.suivant
}
}
longueur--
}
this.ajouterTrier = function(elem){
if(tete == null){
tete = new ElemList(elem)
}
else{
let rech = function(list,elem){
if(elem.val>list.val){
let prec = list.head()
let cur = prec.suivant
while(cur.suivant && cur.val<elem.val){
prec = cur
cur = cur.suivant
}
elem.suivant = cur
prec.suivant = elem
}
}
}
}
this.miroir = function(){
if(tete!=null){
}
}
this.head = function(){
return tete
}
this.taille = function(){
return longueur
}
this.setTaille = function(val){
longueur = val
}
this.sum = function(){
let sum =0;
if(tete==null){
return sum;
}
else{
let sumFin = function(list){
let sum=list.val
if(list.suivant==null){
return sum
}
else{
return sum +sumFin(list.suivant)
}
}
return sumFin(tete);
}
}
}
/* A eviter */
Liste.prototype.concat = function(liste){
let courant = liste.head()
this.ajouter(courant.val)
while(courant.suivant){
courant = courant.suivant
this.ajouter(courant.val)
}
return this
}
/* mieux */
Liste.prototype.concato = function(liste){
let courant = this.head()
while(courant.suivant){
courant = courant.suivant
}
courant.suivant = liste.head()
let newTaille = this.taille() + liste.taille()
this.setTaille(newTaille)
return this
}
let l = new Liste()
let lc = new Liste()
l.ajouter(6)
l.ajouter(4)
l.ajouter(5)
l.ajouter(10)
l.ajouter(100)
console.log("-------somme et longueur liste 1 avant concatenation------")
console.log(l.sum())
console.log(l.taille())
lc.ajouter(19)
lc.ajouter(10)
lc.ajouter(200)
//l.ajouter(lc)
console.log("-------somme et longueur liste 1 apres concatenation------")
console.log(" "+l.concato(lc).sum())
console.log(" "+l.taille())
console.log(l.head())
l.effacer(5)
console.log(l.head())
console.log(l.taille())
//console.log(l.head())