לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 09-03-2008, 11:03
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
לאור השקט בפורום, עוד חידה - רשימה מקושרת

הנה לכם חידה שכדאי להכיר - היא מופיעה לרב בראיונות עבודה.

נתון לכם מצביע אל חולייה ברשימה מקושרת מגודל לא ידוע וצורה לא ידועה.
בשימוש של מספר משתנים קבוע עליכם לקבוע האם יש ברשימה מעגל, כלומר, חולייה שמצביעה לחולייה קודמת יותר ברשימה:
קוד:
1->2->3->4->1

החולייה ה-4 מצביעה בחזרה ל-1 וזה יוצר מעגל.

* אסור לשנות את הרשימה!
* מותר להשתמש במספר קטן של משתנים נוספים (לא ליצור מערך או רשימה שלמה נוספת!).
* לא ידוע לאיזו נקודה ברשימה המצביע שלכם מוביל.

בהצלחה

לאור נסיון עבר, מי שמכיר מתבקש להוסיף את התשובה שלו בתגי spoiler אם בכלל!
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.


נערך לאחרונה ע"י Dark Knight בתאריך 09-03-2008 בשעה 11:05.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 09-03-2008, 15:04
  משתמש זכר yoavmatchulsky yoavmatchulsky אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 1,561
שלח הודעה דרך ICQ אל yoavmatchulsky שלח הודעה דרך MSN אל yoavmatchulsky Facebook profile
בתגובה להודעה מספר 3 שנכתבה על ידי Fate שמתחילה ב "איך בn^2 זה טריויאלי? אל תשכח..."

אחחח, צודק

טעיתי בהנחה קטנה, שחשבתי שנותנים לי איבר בתוך הלולאה.

בכל זאת, פתרון:
זהירות - ספויילר!
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #6  
ישן 09-03-2008, 15:44
צלמית המשתמש של maind
  maind maind אינו מחובר  
 
חבר מתאריך: 08.10.02
הודעות: 827
בתגובה להודעה מספר 1 שנכתבה על ידי Dark Knight שמתחילה ב "לאור השקט בפורום, עוד חידה - רשימה מקושרת"

אני לא מכיר אבל אני אנסה את מזלי:

קוד:
bool checkcir(node *start) { unsigned long size = 0, i; node *r, *current; for (current = start; current != NULL; current = current->next) { for (r = start, i = 0; i < size; r = r->next, i++) { if (r == current) return true; } size++; } return false; }


ובדקתי את זה עם הקוד הבא:
קוד:
// testinked.cpp : Defines the entry point for the console application. // #include "stdafx.h" struct node { int x; node *next; }; bool checkcir(node *start) { unsigned long size = 0, i; node *r, *current; for (current = start; current != NULL; current = current->next) { for (r = start, i = 0; i < size; r = r->next, i++) { if (r == current) return true; } size++; } return false; } int main(int argc, char* argv[]) { node a[256]; //5->4->1->5->4->1.... a[1].next = &a[5]; a[5].next = &a[4]; a[4].next = &a[1]; printf("%d\r\n", checkcir(&a[5]) ? 1 : 0); //4->1->5->4->1->5.... a[1].next = &a[5]; a[5].next = &a[4]; a[4].next = &a[1]; printf("%d\r\n", checkcir(&a[4]) ? 1 : 0); //1->5->4->1->5->4->1.... a[1].next = &a[5]; a[5].next = &a[4]; a[4].next = &a[1]; printf("%d\r\n", checkcir(&a[1]) ? 1 : 0); //5->4->1->NULL a[5].next = &a[4]; a[4].next = &a[1]; a[1].next = NULL; printf("%d\r\n", checkcir(&a[5]) ? 1 : 0); //1->2->3->4->5->2->3->4->5->2.... a[1].next = &a[2]; a[2].next = &a[3]; a[3].next = &a[4]; a[4].next = &a[5]; a[5].next = &a[2]; printf("%d\r\n", checkcir(&a[2]) ? 1 : 0); //1->1->1->1->... a[1].next = &a[1]; printf("%d\r\n", checkcir(&a[1]) ? 1 : 0); return 0; }
_____________________________________
Error: Keyboard not found
Press F1 to continue


נערך לאחרונה ע"י maind בתאריך 09-03-2008 בשעה 15:48.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 17:15

הדף נוצר ב 0.07 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר