Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Javascript - cum sa sterg complet obiectele "orfane" dintr-o linked list
Last Updated: Jul 07 2021 10:44, Started by
wolfenste
, Jul 07 2021 09:38
·
0
#1
Posted 07 July 2021 - 09:38
Am o linked list in care adaug si sterg noduri. Creez un nou nod (un obiect avand mai multe proprietati) iar daca il elimin mai tarziu din lista, doar editez legaturile dintre nodul precedent si nodul urmator. Si gata, nodul "sters" nu mai apare in lista. Numai ca el este doar eliminat din lista, ramane in memorie (ram). Vreau sa il sterg definitiv sa nu am memoria ocupata degeaba. Chiar daca asta se intampla intr-o functie si vor fi sterse oricum toate la iesirea din functie (functia returneaza number), pentru input foarte mare tot o sa am memoria ocupata prea mult si degeaba.
Cica daca nu le-am definit cu "var" ar putea fi sterse cu delete. Le-am definit cu "let". Daca le pun intr-un array ce functioneaza ca un stack si le dau array.pop () pana ramane gol, sunt sterse definitiv? Alte idei? Cum sa procedez corect? Va rog astazi ca maine-i prea tarziu. Multumesc! Edited by wolfenste, 07 July 2021 - 09:40. |
#3
Posted 07 July 2021 - 10:44
Adica sa-l las asa? Nu e codul propriu zis, e simplificat sa fie ilustrativ.
class O { constructor (val, prev, next) { this.val = val; this.prev = prev; this.next = next; } } function insertAfter (position, element) { element.next = position.next; element.prev = position; element.next.prev = element; position.next = element; } function deleteCurrent (current) { current.prev.next = current.next; current.next.prev = current.prev; } function some () { // Create a doubly linked list with a sentinel nil let nil = new O (null, null, null); let head = new O (1, null, null); nil.next = head; nil.prev = head; head.next = nil; head.prev = nil; let current = nil.next; for (let i = 2; i < 11; ++i) { let obj = new O (i, null, null); insertAfter (current, obj); current = current.next; } console.log (current); // current is object with val = 10 let stack = []; // keeps objects that must be removed from the list stack.push (current); // current is in the stack deleteCurrent (current); // current is not in the list anymore stack.pop (); // current is not in the stack anymore console.log (current); // current is still living // Last edit: trebuia sa-i dau undefined inainte.... current = undefined; delete (current); console.log (current); // current is undefined. } some (); laffin, on 07 iulie 2021 - 10:22, said:
relax, se ocupa garbage collector. Ok, nu-mi mai bat capul cu asta. Multumesc! Edited by wolfenste, 07 July 2021 - 10:47. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users