数据结构:单向链表系列5--在链表中查找元素


在链表中查找元素

函数签名:

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/


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM