在链表中查找元素
函数签名:
bool search(Node *head, int x)
如果在链表中查找到这个元素返回true,否则false
迭代法
2) 初始化一个节点指针, current = head. 3) 如果current不为NULL执行以下循环 a) current->key 等于当前待查找值key则返回true. b) current = current->next 4) 否则返回 false
/*Checks whether the value key is present in linked list*/ bool search(struct Node* head, int key) { struct Node* current = head; //Initialize current while(current != NULL) { if(current->data == key) return true; current = current->next; } return false; }
java:
//Checks whether the value key is present in linked list public boolean search(Node head, int key) { Node current = head; //Initialize current while (current != null) { if (current.data == key) return true; //data found current = current.next; } return false; //data not found }
c#
// Checks whether the value key is present in linked list public bool search(Node head, int key) { Node current = head; // Initialize current while (current != null) { if (current.data == key) return true; // data found current = current.next; } return false; // data not found }
递归法:
bool search(head, x) 1)如果head是NULL, return false. 2) 如果head数据域的值和待查找的一致,返回true; 2) 否则返回 search(head->next, x)
c语言:
/* Checks whether the value key is present in linked list */ bool searchRecursive(struct Node* head, int key) { if(head == NULL) { return false; } //If key is present in current node, //return true if(head->data == key) return true; //recursive for remaining list return searchRecursive(head->next, key); }
java:
// Checks whether the value key is present // in linked list public boolean search(Node head, int key) { // Base case if (head == null) return false; // If key is present in current node, // return true if (head.data == key) return true; // Recur for remaining list return search(head.next, key); }
c#
// Checks whether the value key is present // in linked list public bool search(Node head, int key) { // Base case if (head == null) return false; // If key is present in current node, // return true if (head.data == key) return true; // Recur for remaining list return search(head.next, key); }
文章来源:https://www.geeksforgeeks.org/search-an-element-in-a-linked-list-iterative-and-recursive/
原文地址:https://www.cnblogs.com/passedbylove/p/11439263.html
时间: 2024-11-03 22:28:15