Salut,
J'ai recréé un genre de LinkedList dans un langage appellé unrealscript.
Voici la méthode qui sert à recupérer les éléments conteneurs qui portent une référence vers un objet.
J'ai modifié les conteneurs pour qu'ils supportent les doubles liens et là je suis en train de me casser la tête pour adapter la méthode pour gagner de la vitesse.
Le raisonnement est simple. Si l'indice se trouve vers le début de la liste, j'utilise des getNext() et, si l'indice se trouve près de la fin de la liste, j'utilise les getPrevious(). Mais, apparemment, je coince au niveau de l'algorithmique et ca m'exaspère.
Un petit coup de pouce ne serais donc pas de refus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 function ListElement getListElement( int index ) { local int i, size; local ListElement le; if( !isEmpty() ) { if( index > 0 ) // index is a valid value { //if( index < size/2 ) // Closer to List start //{ le = getFirstListElement(); i = 1; // Account for firstListElement while( i != index ) { le = le.getNext(); if( le == none ) return none; i++; } return le; //} // Divide and conquer // Might need fixing /* if( index >= size/2 ) // Closer to List end { le = getLastListElement(); i = size; // Account for lastListElement while( i != index ) { le = le.getPrevious(); if( le == none ) return none; i--; } return le; } */ } } return none; }
Partager