שאלה לגבי חיפוש בעץ בינארי.נניח שעץ מכיל כתובות IP של BLACKLIST.
אני מקבל את ראש העץ ומשנה שהוא סטראטק של הודעה , שיש שם 2 משתנים של מקור ויעד.
אני צריך לבדוק שלא המקור ולא היעד נמצאים בתוך העץ , במידה והם נמצאים אני צריך לזרוק את ההודעה.
עיניתי על זה בצורה מסויימת הפתרון שלי עבר אבל במחשבה שניה אני חושב שזה לא תופס את כול המצבים.
הינה הפסדו:
int search(node* Head,message * msg) { if (Head!=NULL) { if(msg->source == Head ->ip | msg->dest == Head ->ip) return(1) else if(Head ->ip < msg->source ) return (search(Head ->right,msg); else if(Head ->ip < msg->dest) return (search(Head ->right,msg); else if(Head ->ip > msg->source ) return (search(Head ->left,msg); else if(Head ->ip > msg->dest ) return (search(Head ->left,msg); }else return (0) }
|
מה אתם אומרים ?
*בהנחה ש מימין לקודקוד זה ערכים גדולים ומשמאל קטנים.