Announcement

Collapse
No announcement yet.

giúp đỡ về hàm chèn con trở trong cấu trúc dữ liệu ring buffer

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • giúp đỡ về hàm chèn con trở trong cấu trúc dữ liệu ring buffer

    đây là hàm chèn một phần tử vào bang:
    Code:
    int fifoput(void *next) 
    {
       if(num == N) 
    	   return(0);
       else 
       {
           table[in] = next;
           num++;
           in=(in+1)%N;
           return(1);
       }   
    }
    ai có thể giải thích đoạn code này được không?
    Code:
      {
           table[in] = next;
           num++;
           in=(in+1)%N;
           return(1);
       }
    Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

  • #2
    PHP Code:

    {
           
    table[in] = next;//Phần tử hiện tại sẽ có giá trị là next
           
    num++;//Tăng số đếm phần tử trong table
           
    in=(in+1)%N;//Cứ tưởng tượng table là một vòng tròn thì khi tới phần tử cuối cùng thì phần tử tiếp theo là phần tử đầu tiên
           
    return(1);
       } 
    Cái này bạn chỉ cần nắm cái thuật toán của first in first out là hiểu đó mà

    Comment


    • #3
      Originally posted by 11520132 View Post
      PHP Code:

      {
             
      table[in] = next;//Phần tử hiện tại sẽ có giá trị là next
             
      num++;//Tăng số đếm phần tử trong table
             
      in=(in+1)%N;//Cứ tưởng tượng table là một vòng tròn thì khi tới phần tử cuối cùng thì phần tử tiếp theo là phần tử đầu tiên
             
      return(1);
         } 
      Cái này bạn chỉ cần nắm cái thuật toán của first in first out là hiểu đó mà
      cảm ơn nha, cái mình không hiểu chính là dòng thứ 3 đấy.
      Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

      Comment


      • #4
        theo mình in+1 là bước nhảy cho bạn trỏ vào "đối tượng" kế tiếp trong cái ring_buf, và việc %N là để khi nào in = N lúc ấy phép chia lấy dư %N trả trị lại là 0 --> in = 0 tức là quay lại "đối tượng" ban đầu.

        Comment


        • #5
          Originally posted by 11520176 View Post
          theo mình in+1 là bước nhảy cho bạn trỏ vào "đối tượng" kế tiếp trong cái ring_buf, và việc %N là để khi nào in = N lúc ấy phép chia lấy dư %N trả trị lại là 0 --> in = 0 tức là quay lại "đối tượng" ban đầu.
          are you sure?
          Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

          Comment


          • #6
            sure vì đó chỉ là dòng lệnh hạn chế việc biến in thoát khỏi ngoài N ( lớn hơn N) và ngoài nó đây là 1 dòng lệnh tạo ra 1 vòng lặp ẩn tức là i lun tăng từ 0-->N rùi lại vòng lại

            Comment


            • #7
              Originally posted by 11520176 View Post
              sure vì đó chỉ là dòng lệnh hạn chế việc biến in thoát khỏi ngoài N ( lớn hơn N) và ngoài nó đây là 1 dòng lệnh tạo ra 1 vòng lặp ẩn tức là i lun tăng từ 0-->N rùi lại vòng lại
              in thuộc [0:N-1] nhé bạn.

              are you sure?
              Top Best Online - The Best Products Review Website

              Comment

              LHQC

              Collapse
              Working...
              X