Escriba una función que busque una clave ‘x’ dada en una lista dada de enlaces simples. La función debe devolver verdadero si x está presente en la lista enlazada y falso en caso contrario.
bool search(Node *head, int x)
Por ejemplo, si la clave a buscar es 15 y la lista enlazada es 14->21->11->30->10, entonces la función debería devolver falso. Si la clave a buscar es 14, entonces la función debería devolver verdadero.
C++
// Iterative C++ program to search // an element in linked list #include <bits/stdc++.h> using namespace std; /* Link list node */ class Node { public: int key; Node* next; }; /* Given a reference (pointer to pointer) to the head of a list and an int, push a new node on the front of the list. */ void push(Node** head_ref, int new_key) { /* allocate node */ Node* new_node = new Node(); /* put in the key */ new_node->key = new_key; /* link the old list off the new node */ new_node->next = (*head_ref); /* move the head to point to the new node */ (*head_ref) = new_node; } /* Checks whether the value x is present in linked list */ bool search(Node* head, int x) { Node* current = head; // Initialize current while (current != NULL) { if (current->key == x) return true; current = current->next; } return false; } /* Driver program to test count function*/ int main() { /* Start with the empty list */ Node* head = NULL; int x = 21; /* Use push() to construct below list 14->21->11->30->10 */ push(&head, 10); push(&head, 30); push(&head, 11); push(&head, 21); push(&head, 14); search(head, 21)? cout<<"Yes" : cout<<"No"; return 0; } // This is code is contributed by rathbhupendra
C
// Iterative C program to search an element in linked list #include<stdio.h> #include<stdlib.h> #include<stdbool.h> /* Link list node */ struct Node { int key; struct Node* next; }; /* Given a reference (pointer to pointer) to the head of a list and an int, push a new node on the front of the list. */ void push(struct Node** head_ref, int new_key) { /* allocate node */ struct Node* new_node = (struct Node*) malloc(sizeof(struct Node)); /* put in the key */ new_node->key = new_key; /* link the old list off the new node */ new_node->next = (*head_ref); /* move the head to point to the new node */ (*head_ref) = new_node; } /* Checks whether the value x is present in linked list */ bool search(struct Node* head, int x) { struct Node* current = head; // Initialize current while (current != NULL) { if (current->key == x) return true; current = current->next; } return false; } /* Driver program to test count function*/ int main() { /* Start with the empty list */ struct Node* head = NULL; int x = 21; /* Use push() to construct below list 14->21->11->30->10 */ push(&head, 10); push(&head, 30); push(&head, 11); push(&head, 21); push(&head, 14); search(head, 21)? printf("Yes") : printf("No"); return 0; }
Java
// Iterative Java program to search an element // in linked list //Node class class Node { int data; Node next; Node(int d) { data = d; next = null; } } //Linked list class class LinkedList { Node head; //Head of list //Inserts a new node at the front of the list public void push(int new_data) { //Allocate new node and putting data Node new_node = new Node(new_data); //Make next of new node as head new_node.next = head; //Move the head to point to new Node head = new_node; } //Checks whether the value x is present in linked list public boolean search(Node head, int x) { Node current = head; //Initialize current while (current != null) { if (current.data == x) return true; //data found current = current.next; } return false; //data not found } //Driver function to test the above functions public static void main(String args[]) { //Start with the empty list LinkedList llist = new LinkedList(); /*Use push() to construct below list 14->21->11->30->10 */ llist.push(10); llist.push(30); llist.push(11); llist.push(21); llist.push(14); if (llist.search(llist.head, 21)) System.out.println("Yes"); else System.out.println("No"); } } // This code is contributed by Pratik Agarwal
Python3
# Iterative Python program to search an element # in linked list # Node class class Node: # Function to initialise the node object def __init__(self, data): self.data = data # Assign data self.next = None # Initialize next as null # Linked List class class LinkedList: def __init__(self): self.head = None # Initialize head as None # This function insert a new node at the # beginning of the linked list def push(self, new_data): # Create a new Node new_node = Node(new_data) # 3. Make next of new Node as head new_node.next = self.head # 4. Move the head to point to new Node self.head = new_node # This Function checks whether the value # x present in the linked list def search(self, x): # Initialize current to head current = self.head # loop till current not equal to None while current != None: if current.data == x: return True # data found current = current.next return False # Data Not found # Code execution starts here if __name__ == '__main__': # Start with the empty list llist = LinkedList() ''' Use push() to construct below list 14->21->11->30->10 ''' llist.push(10); llist.push(30); llist.push(11); llist.push(21); llist.push(14); if llist.search(21): print("Yes") else: print("No") # This code is contributed by Ravi Shankar
C#
// Iterative C# program to search an element // in linked list using System; // Node class public class Node { public int data; public Node next; public Node(int d) { data = d; next = null; } } // Linked list class public class LinkedList { Node head; // Head of list // Inserts a new node at the front of the list public void push(int new_data) { // Allocate new node and putting data Node new_node = new Node(new_data); // Make next of new node as head new_node.next = head; // Move the head to point to new Node head = new_node; } // Checks whether the value x is present in linked list public bool search(Node head, int x) { Node current = head; // Initialize current while (current != null) { if (current.data == x) return true; // data found current = current.next; } return false; // data not found } // Driver code public static void Main(String []args) { // Start with the empty list LinkedList llist = new LinkedList(); /*Use push() to construct below list 14->21->11->30->10 */ llist.push(10); llist.push(30); llist.push(11); llist.push(21); llist.push(14); if (llist.search(llist.head, 21)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } // This code contributed by Rajput-Ji
Javascript
<script> // Iterative javascript program // to search an element // in linked list //Node class class Node { constructor(d) { this.data = d; this.next = null; } } // Linked list class var head; // Head of list // Inserts a new node at the front of the list function push(new_data) { // Allocate new node and putting data var new_node = new Node(new_data); // Make next of new node as head new_node.next = head; // Move the head to point to new Node head = new_node; } // Checks whether the value // x is present in linked list function search( head , x) { var current = head; // Initialize current while (current != null) { if (current.data == x) return true; // data found current = current.next; } return false; // data not found } // Driver function to test // the above functions // Start with the empty list /* Use push() to construct below list 14->21->11->30->10 */ push(10); push(30); push(11); push(21); push(14); if (search(head, 21)) document.write("Yes"); else document.write("No"); // This code contributed by aashish1995 </script>
C++
// Recursive C++ program to search // an element in linked list #include <bits/stdc++.h> using namespace std; /* Link list node */ struct Node { int key; struct Node* next; }; /* Given a reference (pointer to pointer) to the head of a list and an int, push a new node on the front of the list. */ void push(struct Node** head_ref, int new_key) { /* allocate node */ struct Node* new_node = (struct Node*) malloc(sizeof(struct Node)); /* put in the key */ new_node->key = new_key; /* link the old list off the new node */ new_node->next = (*head_ref); /* move the head to point to the new node */ (*head_ref) = new_node; } /* Checks whether the value x is present in linked list */ bool search(struct Node* head, int x) { // Base case if (head == NULL) return false; // If key is present in current node, return true if (head->key == x) return true; // Recur for remaining list return search(head->next, x); } /* Driver code*/ int main() { /* Start with the empty list */ struct Node* head = NULL; int x = 21; /* Use push() to construct below list 14->21->11->30->10 */ push(&head, 10); push(&head, 30); push(&head, 11); push(&head, 21); push(&head, 14); search(head, 21)? cout << "Yes" : cout << "No"; return 0; } // This code is contributed by SHUBHAMSINGH10
C
// Recursive C program to search an element in linked list #include<stdio.h> #include<stdlib.h> #include<stdbool.h> /* Link list node */ struct Node { int key; struct Node* next; }; /* Given a reference (pointer to pointer) to the head of a list and an int, push a new node on the front of the list. */ void push(struct Node** head_ref, int new_key) { /* allocate node */ struct Node* new_node = (struct Node*) malloc(sizeof(struct Node)); /* put in the key */ new_node->key = new_key; /* link the old list off the new node */ new_node->next = (*head_ref); /* move the head to point to the new node */ (*head_ref) = new_node; } /* Checks whether the value x is present in linked list */ bool search(struct Node* head, int x) { // Base case if (head == NULL) return false; // If key is present in current node, return true if (head->key == x) return true; // Recur for remaining list return search(head->next, x); } /* Driver program to test count function*/ int main() { /* Start with the empty list */ struct Node* head = NULL; int x = 21; /* Use push() to construct below list 14->21->11->30->10 */ push(&head, 10); push(&head, 30); push(&head, 11); push(&head, 21); push(&head, 14); search(head, 21)? printf("Yes") : printf("No"); return 0; }
Java
// Recursive Java program to search an element // in linked list // Node class class Node { int data; Node next; Node(int d) { data = d; next = null; } } // Linked list class class LinkedList { Node head; //Head of list //Inserts a new node at the front of the list public void push(int new_data) { //Allocate new node and putting data Node new_node = new Node(new_data); //Make next of new node as head new_node.next = head; //Move the head to point to new Node head = new_node; } // Checks whether the value x is present // in linked list public boolean search(Node head, int x) { // Base case if (head == null) return false; // If key is present in current node, // return true if (head.data == x) return true; // Recur for remaining list return search(head.next, x); } // Driver function to test the above functions public static void main(String args[]) { // Start with the empty list LinkedList llist = new LinkedList(); /* Use push() to construct below list 14->21->11->30->10 */ llist.push(10); llist.push(30); llist.push(11); llist.push(21); llist.push(14); if (llist.search(llist.head, 21)) System.out.println("Yes"); else System.out.println("No"); } } // This code is contributed by Pratik Agarwal
Python3
# Recursive Python program to # search an element in linked list # Node class class Node: # Function to initialise # the node object def __init__(self, data): self.data = data # Assign data self.next = None # Initialize next as null class LinkedList: def __init__(self): self.head = None # Initialize head as None # This function insert a new node at # the beginning of the linked list def push(self, new_data): # Create a new Node new_node = Node(new_data) # Make next of new Node as head new_node.next = self.head # Move the head to # point to new Node self.head = new_node # Checks whether the value key # is present in linked list def search(self, li, key): # Base case if(not li): return False # If key is present in # current node, return true if(li.data == key): return True # Recur for remaining list return self.search(li.next, key) # Driver Code if __name__=='__main__': li = LinkedList() li.push(1) li.push(2) li.push(3) li.push(4) key = 4 if li.search(li.head,key): print("Yes") else: print("No") # This code is contributed # by Manoj Sharma
C#
// Recursive C# program to search // an element in linked list using System; // Node class public class Node { public int data; public Node next; public Node(int d) { data = d; next = null; } } // Linked list class public class LinkedList { Node head; //Head of list //Inserts a new node at the front of the list public void push(int new_data) { //Allocate new node and putting data Node new_node = new Node(new_data); //Make next of new node as head new_node.next = head; //Move the head to point to new Node head = new_node; } // Checks whether the value x is present // in linked list public bool search(Node head, int x) { // Base case if (head == null) return false; // If key is present in current node, // return true if (head.data == x) return true; // Recur for remaining list return search(head.next, x); } // Driver code public static void Main() { // Start with the empty list LinkedList llist = new LinkedList(); /* Use push() to construct below list 14->21->11->30->10 */ llist.push(10); llist.push(30); llist.push(11); llist.push(21); llist.push(14); if (llist.search(llist.head, 21)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } // This code is contributed by PrinciRaj1992
Javascript
<script> // Recursive javascript program to search an element // in linked list // Node class class Node { constructor(val) { this.data = val; this.next = null; } } // Linked list class var head; // Head of list // Inserts a new node at the front of the list function push(new_data) { // Allocate new node and putting data var new_node = new Node(new_data); // Make next of new node as head new_node.next = head; // Move the head to point to new Node head = new_node; } // Checks whether the value x is present // in linked list function search(head , x) { // Base case if (head == null) return false; // If key is present in current node, // return true if (head.data == x) return true; // Recur for remaining list return search(head.next, x); } // Driver function to test the above functions // Start with the empty list /* * Use push() to construct below list 14->21->11->30->10 */ push(10); push(30); push(11); push(21); push(14); if (search(head, 21)) document.write("Yes"); else document.write("No"); // This code contributed by gauravrajput1 </script>
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA