01/10/2018, 01:15

Lỗi khi tìm kiếm phẩn tử trong circularly linked list

 //Searching for an item in the circularly linked list

ListElem *find(ListElem *L,int val){

  ListElem *tr;
  int f=0;
  if(L!=NULL){

     if(L->data==val) return L;//The target item is the first item 
    else{ //search the next item
         tr=L->next;
         while(tr!=L){
              if(tr->data==val) {f=1;break;} //found the tartget=>stop searching
              else tr=tr->next;//otherwise continue searching
         }
}

  if(f!=0) return tr; //return found item
  else return NULL;//otherwise return NULL
}
  else return NULL; //empty list
}

Nếu trong trường hợp tìm được 2 kiểu data giống nhau thì làm như nào.

NGuồn: worldbestlearningcenter.com

X viết 03:23 ngày 01/10/2018

Mô tả rõ hơn vấn đề đi bạn ơi.

Vấn đề này thì không hề mới và nó luôn đi kèm với vấn đề là newbie thì thường không chịu đọc những bài như này. Bài viết về vấn đề này thì lại càng nhiều nữa. Mình cũng không đưa ra lời khuyên hay gì hết, chỉ copy lại một đoạn liên quan tới vấn đề này trong cuốn The Pragmatic Programmer rồi bình loạn thêm tí xíu cho mọi người dễ tham khảo thôi nhá Care and Cultivation of Gurus With the global adoption of the Internet, gurus suddenly are as close as your Enter key. So, how do…

Ngô Doãn Tuấn viết 03:19 ngày 01/10/2018

Anh comment nhầm rồi :3

rogp10 viết 03:17 ngày 01/10/2018

Vậy là đúng rồi còn gì. “2 kiểu data giống nhau” là thế quái nào cơ chứ.

Hoan Sò viết 03:17 ngày 01/10/2018

ý mình là tr->data==val nếu tìm được thì break; nhưng nếu mà trong struct có 2 thằng data giống nhau thì chỉ tìm được 1 thằng. Mới đầu ngĩ vậy nhưng bây giờ ngĩ thông rồi. thanks all.

Bài liên quan
0