6928b00737e0656548f61f6b49cc791812f80b77
3 author
= "Jérôme Benoit",
6 public class Liste
extends Structure
{
8 private class IntNode
{
17 IntNode(int value
, IntNode nextNode
) {
22 public int getData() {
26 public void setData(int value
) {
30 public IntNode
getNext() {
34 public void setNext(IntNode nextNode
) {
40 private IntNode headNode
;
41 private int list_counter
;
48 private boolean isEmpty()
50 return getHeadNode() == null;
53 public int getSize() {
57 public void setSize(int size
) {
61 public void setHeadNode(IntNode node
) {
65 public IntNode
getHeadNode() {
69 public boolean inserer(int value
) {
70 boolean found
= false;
72 headNode
= new IntNode(value
);
75 } else if (value
== headNode
.getData()) {
79 IntNode nodeCursorNext
= headNode
.getNext();
80 while (nodeCursorNext
!= null) {
81 if (value
== nodeCursorNext
.getData()) {
85 nodeCursorNext
= nodeCursorNext
.getNext();
89 headNode
= new IntNode(value
, headNode
);
92 // Insertion in a linked list can't fail
97 public boolean supprimer(int value
) {
98 boolean deleted
= false;
101 } else if (value
== headNode
.getData()) {
102 headNode
= headNode
.getNext();
106 IntNode nodeCursor
= headNode
;
107 IntNode nodeCursorNext
= headNode
.getNext();
108 while (nodeCursorNext
!= null) {
109 if (value
== nodeCursorNext
.getData()) {
110 nodeCursor
.setNext(nodeCursorNext
.getNext());
115 nodeCursor
= nodeCursorNext
;
116 nodeCursorNext
= nodeCursorNext
.getNext();
123 public void afficher() {
124 String className
= this.getClass().getSimpleName();
126 System
.out
.println("---- " + className
+ " ----");
129 } else if (headNode
.getNext() == null) {
130 System
.out
.println("element " + i
+ " : " + headNode
.getData());
132 IntNode nodeCursorNext
= headNode
.getNext();
133 System
.out
.println("element " + i
+ " : " + headNode
.getData());
135 while (nodeCursorNext
!= null) {
136 System
.out
.println("element " + i
+ " : " + nodeCursorNext
.getData());
137 nodeCursorNext
= nodeCursorNext
.getNext();
143 public void compacter(int nElements
) {
144 // Remove the first nElements
145 if (isEmpty() || nElements
== 0) {
147 } else if (headNode
!= null && headNode
.getNext() == null) {
150 // We have at least 2 nodes in the linked list
151 IntNode nodeCursor
= headNode
;
153 // Go to the node at the nElements place
154 while (i
< nElements
- 1 && nodeCursor
.getNext() != null && nElements
> 1) {
155 nodeCursor
= nodeCursor
.getNext();
158 // Set the nElements + 1 node as the root node
160 setHeadNode(nodeCursor
.getNext());