user2495:
- Quiero escribir dos métodos de mínimo y máximo para encontrar el valor máximo de un nodo y el valor mínimo de un nodo en la lista enlazada.
- por ejemplo, si una variable llamada tiendas ABC {1, 78, -9, 42, 0, 14} entonces abc.min () debería devolver -9 y abc.max () debería devolver 78.
Si la lista está vacía debe devolver -1. Imprimir el valor devuelto.
Por favor, ayúdame en este cómo puedo calcular los valores máximo y mínimo en una lista enlazada mediante la introducción de matriz de enteros
```package demo; public class MaximumMinimum { class Node{ int data; Node next; public Node(int data) { this.data = data; this.next = null; } } //Represent the head and tail of the singly linked list public Node head = null; public Node tail = null; //addNode() will add a new node to the list public void addNode(int data) { //Create a new node Node newNode = new Node(data); //Checks if the list is empty if(head == null) { //If list is empty, both head and tail will point to new node head = newNode; tail = newNode; } else { //newNode will be added after tail such that tail's next will point to newNode tail.next = newNode; //newNode will become new tail of the list tail = newNode; } } //minNode() will find out the minimum value node in the list public void minNode() { Node current = head; int min; if(head == null) { System.out.println("List is empty"); } else { //Initializing min with head node data min = head.data; while(current != null){ //If current node's data is smaller than min //Then, replace value of min with current node's data if(min > current.data) { min = current.data; } current= current.next; } System.out.println("Minimum value node in the list: "+ min); } } //maxNode() will find out the maximum value node in the list public void maxNode() { Node current = head; int max; if(head == null) { System.out.println("List is empty"); } else { //Initializing max with head node data max = head.data; while(current != null){ //If current node's data is greater than max //Then, replace value of max with current node's data if(max < current.data) { max = current.data; } current = current.next; } System.out.println("Maximum value node in the list: "+ max); } } public static void main(String[] args) { MaximumMinimum sList = new MaximumMinimum(); //Adds data to the list sList.addNode(5); sList.addNode(8); sList.addNode(1); sList.addNode(6); //Display the minimum value node in the list sList.minNode(); *//Display the maximum value node in the list * sList.maxNode(); } } ```
Aashish Pawar:
Código que da está ejecutando de manera correcta.
También puedes usar
MaximumMinimum sList = new MaximumMinimum();
List<Integer> list = new ArrayList<>();
Node head = sList.head;
while(head != null){
list.add(head.data);
head= head.next;
}
//no recommended if you want to design your own method
System.out.println(list);
System.out.println(Collections.max(list));
System.out.println(Collections.min(list));
Para introducir matriz de enteros a
public void stores(int[] array)
{
for(int element:array)
{
this.addNode(element);
}
}
a continuación, si se ejecuta en el principal
int[] elements = {1, 78, -9, 42 , 0, 14};
sList.stores(elements);
sList.maxNode(); //78
sList.minNode();//-9
También se puede usar Arrays.stream(array_name).forEach(e->sList.add(e))
si quieres hacerlo en Java 8 vías.