3 author
= "Jérôme Benoit",
6 public class Liste
extends Structure
{
7 private Node
<Integer
> headNode
;
8 private int list_counter
;
15 private boolean isEmpty()
17 return getHeadNode() == null;
20 public int getSize() {
24 public void setSize(int size
) {
28 public void setHeadNode(Node
<Integer
> node
) {
32 public Node
<Integer
> getHeadNode() {
36 public boolean inserer(int value
) {
37 boolean found
= false;
39 headNode
= new Node
<Integer
>(value
);
42 } else if (value
== headNode
.getData()) {
46 Node
<Integer
> nodeCursorNext
= headNode
.getNext();
47 while (nodeCursorNext
!= null) {
48 if (value
== nodeCursorNext
.getData()) {
52 nodeCursorNext
= nodeCursorNext
.getNext();
56 headNode
= new Node
<Integer
>(value
, headNode
);
59 // Insertion in a linked list can't fail
64 public boolean supprimer(int value
) {
65 boolean deleted
= false;
68 } else if (value
== headNode
.getData()) {
69 headNode
= headNode
.getNext();
73 Node
<Integer
> nodeCursor
= headNode
;
74 Node
<Integer
> nodeCursorNext
= headNode
.getNext();
75 while (nodeCursorNext
!= null) {
76 if (value
== nodeCursorNext
.getData()) {
77 nodeCursor
.setNext(nodeCursorNext
.getNext());
82 nodeCursor
= nodeCursorNext
;
83 nodeCursorNext
= nodeCursorNext
.getNext();
90 public void afficher() {
91 String className
= this.getClass().getSimpleName();
93 System
.out
.println("---- " + className
+ " ----");
96 } else if (headNode
.getNext() == null) {
97 System
.out
.println("element " + i
+ " : " + headNode
.getData());
99 Node
<Integer
> nodeCursorNext
= headNode
.getNext();
100 System
.out
.println("element " + i
+ " : " + headNode
.getData());
102 while (nodeCursorNext
!= null) {
103 System
.out
.println("element " + i
+ " : " + nodeCursorNext
.getData());
104 nodeCursorNext
= nodeCursorNext
.getNext();
110 public void compacter(int nElements
) {
111 // Remove the first nElements
112 if (isEmpty() || nElements
== 0) {
114 } else if (headNode
!= null && headNode
.getNext() == null) {
117 // We have at least 2 nodes in the linked list
118 Node
<Integer
> nodeCursor
= headNode
;
120 // Go to the node at the nElements place
121 while (i
< nElements
- 1 && nodeCursor
.getNext() != null && nElements
> 1) {
122 nodeCursor
= nodeCursor
.getNext();
125 // Set the nElements + 1 node as the root node
127 setHeadNode(nodeCursor
.getNext());