עץ Splay
במדעי המחשב, עץ Splay הוא מבנה נתונים של עץ חיפוש בינארי לא בהכרח מאוזן בעל התכונה המאפשרת גישה חוזרת מהירה לאיברים אליהם בוצעה גישה לאחרונה. הוא מאפשר פעולות בסיסיות כגון הכנסה, חיפוש והסרה של איברים בסיבוכיות זמן של (בניתוח לשיעורין). עבור פעולות לא אקראיות רבות, עץ Splay מתגלה כיעיל יותר מעצי חיפוש אחרים, אפילו כאשר תבנית רצף הפעולות המסוימת אינה ידועה מראש. עץ ה-Splay הומצא על ידי דניאל סליטור ורוברט טרג'אן ב-1985.
בעץ Splay, לכל הפעולות הרגילות שניתן לבצע על עץ חיפוש בינארי מתווספת פעולה בסיסית נוספת הנקראת splaying. ביצוע splaying לעץ עבור איבר מסוים פירושו ארגון מחדש של העץ כך שהאיבר ימצא בשורשו של העץ. דרך אחת לבצע זאת היא ראשית על ידי ביצוע של חיפוש בינארי רגיל של האיבר בעץ ולאחר מכן להשתמש בפעולות סיבוב בעץ, בדומה לפעולות הסיבוב המבוצעות בעץ AVL, כדי להביא את האיבר אל שורש העץ. לחלופין, אלגוריתם top- down יכול לשלב את פעולת החיפוש ופעולת הסידור לכדי שלב ביצוע אחד.
מבני נתונים | ||
---|---|---|
מבנים מופשטים | רשימה • מחסנית • קבוצה • מולטי קבוצה • תור • דו-תור • תור עדיפויות • מילון • מחרוזת • איחוד קבוצות זרות | |
מימושים ליניאריים | מערך • מערך משונן • טבלת גיבוב • רשימה מקושרת • רשימת דילוגים • חוצץ | |
גרפים ועצים | ערימה (בינארית • בינומית • פיבונאצ'י) • עץ חיפוש (עץ אדום שחור • עץ 2-3 • עץ 2-3-4) • עץ סיפות • עץ B • עץ +B • עץ AVL • עץ Splay • עץ BSP • עץ kd • עץ R • Trie • X-fast trie • טריי y מהיר• עץ WAVL | |
הסתברותיים | מסנן בלום |