• 数据结构:单向链表系列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/

  • 相关阅读:
    Servlet学习总结,为理解SpringMVC底层做准备
    maven笔记
    初识Hadoop
    java8笔记: sorted()之正序倒序
    git push命令
    git clone新项目后如何拉取其他分支代码到本地
    Spring事务
    线程之间的转化状态
    Centos安装RabbitMq
    .net 中的AES加密解密
  • 原文地址:https://www.cnblogs.com/passedbylove/p/11439263.html
Copyright © 2020-2023  润新知