Toggle Theme Editor
Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Charcoal

Hỏi Về Dùng Đệ Quy Trong Linked List

Discussion in 'Java Project' started by Jio Freed, 11/4/18.

  1. Jio Freed

    Jio Freed New Member

    Chào mọi người, em là newbie. Nay xin mạo muội hỏi các tiền bối
    Em muốn hỏi đề như trong hình, em có một linked list có các node là các số nguyên, thực hiện tính tổng các số chẵn, lẽ hoặc tổng tất cả bằng đệ quy
    Vì không có tham số nên em không biết dùng đệ quy làm sao ạ. Mong các tiền bối chỉ giáo

    [​IMG]

    Đây là code khi em không dùng đệ quy:
    PHP:
    @Override
        
    public int CountOddNum() throw NoSuchElementException{
            if (
    head == null)
                throw new 
    NoSuchElementException("List is empty!");
            else{
                
    Node tmp head;
                
    int max 0;
                
    int t 0;
                while (
    tmp.getNext() != null){
                    if (
    tmp.getData()%!= 0){
                        
    max+ = tmp.getData();
                        
    t++
                    }
                    
    tmp tmp.getNext();
                }
                if (
    == 0)
                    throw new 
    NoSuchElementException("List doesn't have odd number");
                return 
    max;
            }
        }
     
    Last edited: 11/4/18
  2. D.A.N_3002

    D.A.N_3002 Active Member

  3. Jio Freed

    Jio Freed New Member

    Đã chỉnh sửa :)
    Cảm ơn bạn, nhưng mình chỉ copy 1 đoạn code nhỏ nên thiết nghĩ cũng ko cần phải up hết lên
     
    D.A.N_3002 likes this.
  4. D.A.N_3002

    D.A.N_3002 Active Member

    Vấn đề này cũng không khó lắm, để mk làm 1 Vd về tính tổng nhé :) Ở đây mk dùng ArrayList cho nhanh nhé :)
    PHP:
    import java.util.ArrayList;

    public class 
    Suppose_Sum
    {
        public static 
    ArrayList<Integerarr;
       
        public static 
    Integer Sum(int inint location)
        {
            if(
    location == arr.size())
            {
                return 
    in;
            }
            else
            {
                
    in += arr.get(location);
                return 
    Sum(inlocation 1);
            }
        }
       
        public static 
    void main(String[] args)
        {
            
    // Thêm phần tử
            
    arr = new ArrayList<>();
            for(
    int i 0<= 10i++)
            {
                
    arr.add(i);
            }
           
            
    System.out.println(Sum(00));
        }
       
    }
    Đây là Output :
    [​IMG]
     
  5. Jio Freed

    Jio Freed New Member

    Cảm ơn bác nhưng theo trong hình đề yêu cầu dùng Linked List
     
  6. D.A.N_3002

    D.A.N_3002 Active Member

    Tạo 1 ArrayList, chạy hàm for để add tất cả phần tử trong Linked List vào ArrayList đó :))
     
  7. Jio Freed

    Jio Freed New Member

    Code của bác mình chưa hiểu lắm, hàm sum bác cho tham số đầu vào là gì thế? in với location là gì vậy?
     
    D.A.N_3002 likes this.
  8. D.A.N_3002

    D.A.N_3002 Active Member

    "in" là số hạng thứ nhất
    "location" là vị trí của số hạng thứ 2 trong ArrayList và cũng là điều kiện để dừng Đệ Quy
     

Chia sẻ trang này

Loading...