package [Link].
linkedList;
import [Link];
public class Main {
static Node firstNode;
static Node lastNode;
public static void main(String[] args) {
readList();
displayList();
removeFirstValue(3);
[Link]();
displayList();
}
public static void readList() {
Scanner scanner = new Scanner([Link]);
[Link]("Number of elements: ");
int itemCount = [Link]();
for(int i = 0; i < itemCount; i++) {
readItem(scanner, i);
}
}
public static void readItem(Scanner scanner, int index) {
[Link]("Item " + index + " : ");
int value = [Link]();
add(value);
}
public static void add(int value) {
Node newNode = new Node();
[Link](value);
// daca sunt la prima adaugare
if (firstNode == null) {
firstNode = newNode;
lastNode = firstNode;
} else {
[Link](newNode);
lastNode = newNode;
}
}
public static Node removeFirstValue(int value){
Node currentNode = firstNode;
Node previousNode = null;
while (currentNode != null){
if([Link]() == value) {
deleteNode(previousNode);
break;
}
previousNode = currentNode;
currentNode = [Link]();
}
return null;
}
private static void deleteNode(Node previousNode) {
if(previousNode == null) {
deleteFristNode();
} else if ([Link]() == lastNode){
deleteLastNode(previousNode);
} else {
deleteInLineNode(previousNode);
}
}
private static void deleteFristNode() {
firstNode = [Link]();
}
private static void deleteLastNode(Node previousNode) {
[Link](null);
lastNode = previousNode;
}
private static void deleteInLineNode(Node previousNode) {
[Link]([Link]().getNextNode());
}
public static int removeAllValues(int value) {
return 0;
}
public static int removeForIndex(int index) {
return 0;
}
public static void displayList(){
Node currentNode = firstNode;
do {
[Link]([Link]() + " ");
currentNode = [Link]();
} while (currentNode != null);
// sau [Link]() == null;
}
}
Remove values
package [Link];
import [Link];
public class Main {
static Node firstNode;
static Node lastNode;
public static void main(String[] args) {
readList();
displayList();
removeFirstValue(3);
[Link]();
displayList();
removeAllValues(1);
[Link]();
displayList();
}
public static void readList() {
Scanner scanner = new Scanner([Link]);
[Link]("Number of elements: ");
int itemCount = [Link]();
for (int i = 0; i < itemCount; i++) {
readItem(scanner, i);
}
}
public static void readItem(Scanner scanner, int index) {
[Link]("Item " + index + " : ");
int value = [Link]();
add(value);
}
public static void add(int value) {
Node newNode = new Node();
[Link](value);
// daca sunt la prima adaugare
if (firstNode == null) {
firstNode = newNode;
lastNode = firstNode;
} else {
[Link](newNode);
lastNode = newNode;
}
}
public static Node removeFirstValue(int value) {
Node currentNode = firstNode;
Node previousNode = null;
while (currentNode != null) {
if ([Link]() == value) {
deleteNode(previousNode);
break;
}
previousNode = currentNode;
currentNode = [Link]();
}
return null;
}
private static void deleteNode(Node previousNode) {
if (previousNode == null) {
deleteFristNode();
} else if ([Link]() == lastNode) {
deleteLastNode(previousNode);
} else {
deleteInLineNode(previousNode);
}
}
private static void deleteFristNode() {
firstNode = [Link]();
}
private static void deleteLastNode(Node previousNode) {
[Link](null);
lastNode = previousNode;
}
private static void deleteInLineNode(Node previousNode) {
[Link]([Link]().getNextNode());
}
public static int removeAllValues(int value) {
Node currentNode = firstNode;
Node previousNode = null;
while (currentNode != null) {
if ([Link]() == value) {
deleteNode(previousNode);
} else {
previousNode = currentNode;
}
currentNode = [Link]();
}
return 0;
}
public static int removeForIndex(int index) {
return 0;
}
public static void displayList() {
Node currentNode = firstNode;
[Link](" { ");
while (currentNode != null) {
[Link]([Link]() + ", ");
currentNode = [Link]();
}
[Link]("}");
}
// sau [Link]() == null;
}
___________ sau ____________
package [Link];
import [Link];
public class Main {
static Node firstNode;
static Node lastNode;
public static void main(String[] args) {
readList();
displayList();
// removeFirstValue(3);
[Link]();
displayList();
int counter = removeAllValues(1);
[Link]();
displayList();
[Link]("You removed " + counter + " items");
removeForIndex(1);
displayList();
}
public static void readList() {
Scanner scanner = new Scanner([Link]);
[Link]("Number of elements: ");
int itemCount = [Link]();
for (int i = 0; i < itemCount; i++) {
readItem(scanner, i);
}
}
public static void readItem(Scanner scanner, int index) {
[Link]("Item " + index + " : ");
int value = [Link]();
add(value);
}
public static void add(int value) {
Node newNode = new Node();
[Link](value);
// daca sunt la prima adaugare
if (firstNode == null) {
firstNode = newNode;
lastNode = firstNode;
} else {
[Link](newNode);
lastNode = newNode;
}
}
public static int removeFirstValue(int value) {
return removeValues(value, true);
}
public static int removeAllValues(int value) {
return removeValues(value, false);
}
/**
* Removes a value from a list.
* @param value the value to be removed.
* @param stopOnFirst specifies if should remove more values.
* @return the number of removed items.
*/
private static int removeValues(int value, boolean stopOnFirst) {
Node currentNode = firstNode;
Node previousNode = null;
int counter = 0;
while (currentNode != null) {
if ([Link]() == value) {
deleteNode(previousNode);
counter++;
if (stopOnFirst) {
break;
}
} else {
previousNode = currentNode;
}
currentNode = [Link]();
}
return counter;
}
private static void deleteNode(Node previousNode) {
if (previousNode == null) {
deleteFristNode();
} else if ([Link]() == lastNode) {
deleteLastNode(previousNode);
} else {
deleteInLineNode(previousNode);
}
}
private static void deleteFristNode() {
firstNode = [Link]();
}
private static void deleteLastNode(Node previousNode) {
[Link](null);
lastNode = previousNode;
}
private static void deleteInLineNode(Node previousNode) {
[Link]([Link]().getNextNode());
}
public static int removeForIndex(int index) {
Node currentNode = firstNode;
Node previousNode = null;
int position = 1;
while(currentNode != null) {
if(position == index){
deleteNode(previousNode);
} else {
previousNode = currentNode;
}
position++;
currentNode = [Link]();
}
return 0;
}
public static void displayList() {
Node currentNode = firstNode;
[Link](" {");
while (currentNode != null) {
[Link]([Link]());
if(currentNode != lastNode){
[Link](", ");
}
currentNode = [Link]();
}
[Link]("}");
}
// sau [Link]() == null;
}