0% found this document useful (0 votes)
37 views

Firstnode Lastnode: Package Import Public Class Static Static Public Static Void

The document describes a linked list implementation in Java that allows adding, removing, and displaying nodes in the list. It defines methods to read input values into the list, remove the first or all occurrences of a given value, and remove a node by index. The remove methods traverse the list, find and delete the target node(s) by updating pointers between nodes.

Uploaded by

anamariati
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views

Firstnode Lastnode: Package Import Public Class Static Static Public Static Void

The document describes a linked list implementation in Java that allows adding, removing, and displaying nodes in the list. It defines methods to read input values into the list, remove the first or all occurrences of a given value, and remove a node by index. The remove methods traverse the list, find and delete the target node(s) by updating pointers between nodes.

Uploaded by

anamariati
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

package ro.sda.

linkedList;

import java.util.Scanner;

public class Main {

static Node firstNode;


static Node lastNode;

public static void main(String[] args) {


readList();
displayList();
removeFirstValue(3);
System.out.println();
displayList();
}

public static void readList() {


Scanner scanner = new Scanner(System.in);
System.out.print("Number of elements: ");
int itemCount = scanner.nextInt();

for(int i = 0; i < itemCount; i++) {


readItem(scanner, i);
}
}

public static void readItem(Scanner scanner, int index) {


System.out.print("Item " + index + " : ");
int value = scanner.nextInt();
add(value);
}

public static void add(int value) {


Node newNode = new Node();
newNode.setValue(value);

// daca sunt la prima adaugare


if (firstNode == null) {
firstNode = newNode;
lastNode = firstNode;
} else {
lastNode.setNextNode(newNode);
lastNode = newNode;
}
}

public static Node removeFirstValue(int value){


Node currentNode = firstNode;
Node previousNode = null;
while (currentNode != null){
if(currentNode.getValue() == value) {
deleteNode(previousNode);
break;
}
previousNode = currentNode;
currentNode = currentNode.getNextNode();
}
return null;
}
private static void deleteNode(Node previousNode) {
if(previousNode == null) {
deleteFristNode();
} else if (previousNode.getNextNode() == lastNode){
deleteLastNode(previousNode);
} else {
deleteInLineNode(previousNode);
}
}

private static void deleteFristNode() {


firstNode = firstNode.getNextNode();
}

private static void deleteLastNode(Node previousNode) {


previousNode.setNextNode(null);
lastNode = previousNode;
}

private static void deleteInLineNode(Node previousNode) {


previousNode.setNextNode(previousNode.getNextNode().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 {
System.out.print(currentNode.getValue() + " ");
currentNode = currentNode.getNextNode();
} while (currentNode != null);
// sau currentNode.getNextNode() == null;
}
}

Remove values

package ro.sda.linkedList;

import java.util.Scanner;

public class Main {

static Node firstNode;


static Node lastNode;

public static void main(String[] args) {


readList();
displayList();
removeFirstValue(3);
System.out.println();
displayList();
removeAllValues(1);
System.out.println();
displayList();
}

public static void readList() {


Scanner scanner = new Scanner(System.in);
System.out.print("Number of elements: ");
int itemCount = scanner.nextInt();

for (int i = 0; i < itemCount; i++) {


readItem(scanner, i);
}
}

public static void readItem(Scanner scanner, int index) {


System.out.print("Item " + index + " : ");
int value = scanner.nextInt();
add(value);
}

public static void add(int value) {


Node newNode = new Node();
newNode.setValue(value);

// daca sunt la prima adaugare


if (firstNode == null) {
firstNode = newNode;
lastNode = firstNode;
} else {
lastNode.setNextNode(newNode);
lastNode = newNode;
}
}

public static Node removeFirstValue(int value) {


Node currentNode = firstNode;
Node previousNode = null;
while (currentNode != null) {
if (currentNode.getValue() == value) {
deleteNode(previousNode);
break;
}
previousNode = currentNode;
currentNode = currentNode.getNextNode();
}
return null;
}

private static void deleteNode(Node previousNode) {


if (previousNode == null) {
deleteFristNode();
} else if (previousNode.getNextNode() == lastNode) {
deleteLastNode(previousNode);
} else {
deleteInLineNode(previousNode);
}
}

private static void deleteFristNode() {


firstNode = firstNode.getNextNode();
}

private static void deleteLastNode(Node previousNode) {


previousNode.setNextNode(null);
lastNode = previousNode;
}

private static void deleteInLineNode(Node previousNode) {


previousNode.setNextNode(previousNode.getNextNode().getNextNode());
}

public static int removeAllValues(int value) {


Node currentNode = firstNode;
Node previousNode = null;

while (currentNode != null) {


if (currentNode.getValue() == value) {
deleteNode(previousNode);
} else {
previousNode = currentNode;
}
currentNode = currentNode.getNextNode();
}
return 0;
}

public static int removeForIndex(int index) {


return 0;
}

public static void displayList() {


Node currentNode = firstNode;
System.out.print(" { ");
while (currentNode != null) {
System.out.print(currentNode.getValue() + ", ");
currentNode = currentNode.getNextNode();
}
System.out.println("}");
}
// sau currentNode.getNextNode() == null;
}

___________ sau ____________

package ro.sda.linkedList;

import java.util.Scanner;

public class Main {

static Node firstNode;


static Node lastNode;

public static void main(String[] args) {


readList();
displayList();
// removeFirstValue(3);
System.out.println();
displayList();
int counter = removeAllValues(1);
System.out.println();
displayList();
System.out.println("You removed " + counter + " items");
removeForIndex(1);
displayList();
}

public static void readList() {


Scanner scanner = new Scanner(System.in);
System.out.print("Number of elements: ");
int itemCount = scanner.nextInt();

for (int i = 0; i < itemCount; i++) {


readItem(scanner, i);
}
}

public static void readItem(Scanner scanner, int index) {


System.out.print("Item " + index + " : ");
int value = scanner.nextInt();
add(value);
}

public static void add(int value) {


Node newNode = new Node();
newNode.setValue(value);

// daca sunt la prima adaugare


if (firstNode == null) {
firstNode = newNode;
lastNode = firstNode;
} else {
lastNode.setNextNode(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 (currentNode.getValue() == value) {
deleteNode(previousNode);
counter++;
if (stopOnFirst) {
break;
}
} else {
previousNode = currentNode;
}
currentNode = currentNode.getNextNode();
}
return counter;
}

private static void deleteNode(Node previousNode) {


if (previousNode == null) {
deleteFristNode();
} else if (previousNode.getNextNode() == lastNode) {
deleteLastNode(previousNode);
} else {
deleteInLineNode(previousNode);
}
}

private static void deleteFristNode() {


firstNode = firstNode.getNextNode();
}

private static void deleteLastNode(Node previousNode) {


previousNode.setNextNode(null);
lastNode = previousNode;
}

private static void deleteInLineNode(Node previousNode) {


previousNode.setNextNode(previousNode.getNextNode().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 = currentNode.getNextNode();
}
return 0;
}

public static void displayList() {


Node currentNode = firstNode;
System.out.print(" {");
while (currentNode != null) {
System.out.print(currentNode.getValue());
if(currentNode != lastNode){
System.out.print(", ");
}
currentNode = currentNode.getNextNode();
}
System.out.println("}");
}
// sau currentNode.getNextNode() == null;
}

You might also like