י"ח/כסלו/תשע"ה
מימוש של תור
לצורך המימוש של טנ"מ תור ,נשתמש בטנ"מ עזר -חוליה
תור -פעולות הממשק סריקה ובנייה
1
טנ"מ חוליה -ממשק
לטנ"מ חוליה – - Nodeשתי תכונות:
הערך השמור בתוכה – .info
החוליה הבאה לאחריה – nextמסוג >Node<T
תיאור סְ כֵמַ טי של חוליה
בפועל נראה יותר כמו
next
next
next
next
תור -פעולות הממשק סריקה ובנייה
2
1
י"ח/כסלו/תשע"ה
טנ"מ חוליה -ממשק
פעולות הממשק
בנאים
)Node(T info
//הפעולה בונה ומחזירה חוליה שהערך שלה הוא ,infoאין לה חוליה עוקבת
)Node(T info, Node<T> next
//הפעולה בונה ומחזירה חוליה ,שהערך שלה הוא ,infoוהחוליה העוקבת לה היא החוליה next
ToString
)(ToString
//הפעולה מחזירה מחרוזת המתארת את החוליה הנוכחית
3
תור -פעולות הממשק סריקה ובנייה
טנ"מ חוליה -ממשק
Get
)(T GetInfo
//הפעולה מחזירה את הערך של החוליה הנוכחית
)(Node<T> GetNext
//הפעולה מחזירה את החוליה העוקבת לחוליה הנוכחית
Set
)SetInfo(T info
//הפעולה קובעת את ערך החוליה הנוכחית להיות info
)SetNext(Node<T> next
//הפעולה קובעת את החוליה העוקבת לחוליה הנוכחית להיות החוליה next
תור -פעולות הממשק סריקה ובנייה
4
2
י"ח/כסלו/תשע"ה
טנ"מ חוליה -מימוש
>public class Node<T
{
//התכונות
;private T info
;private Node<T> next
//בנאים
)public Node(T info
}
//הפעולה בונה ומחזירה חוליה שהערך שלה הוא infoואין לה חוליה עוקבת
;this.info = info
;this.next = null
{
)public Node(T info, Node<T> next
}
//הפעולה בונה ומחזירה חוליה ,שהערך שלה הוא infoוהחוליה העוקבת לה היא החוליה next
;this.info = info
;this.next = next
{
5
תור -פעולות הממשק סריקה ובנייה
טנ"מ חוליה -מימוש
//Get
)(public T GetInfo
{
//הפעולה מחזירה את הערך של החוליה הנוכחית
;return info
{
)(public Node<T> GetNext
}
//הפעולה מחזירה את החוליה העוקבת לחוליה הנוכחית
;return next
{
תור -פעולות הממשק סריקה ובנייה
6
3
י"ח/כסלו/תשע"ה
טנ"מ חוליה -מימוש
//Set
)public void SetInfo(T info
}
//הפעולה קובעת את ערך החוליה הנוכחית להיות info
;this.info = info
{
)public void SetNext(Node<T> next
}
//הפעולה קובעת את החוליה העוקבת לחוליה הנוכחית להיות החוליה next
;this.next = next
}
7
תור -פעולות הממשק סריקה ובנייה
טנ"מ חוליה -מימוש
//ToString
)(public override string ToString
}
//הפעולה מחזירה מחרוזת המתארת את החוליה הנוכחית
;)(return this.info.ToString
}
תור -פעולות הממשק סריקה ובנייה
8
4
י"ח/כסלו/תשע"ה
טנ"מ תור -מימוש
תיאור סְ כֵמַ טי של תור חוליות חוליה
יציאה
Out
next
info
next
info
next
info
next
info
next
info
next
info
first
כניסה
last
In
9
תור -פעולות הממשק סריקה ובנייה
טנ"מ תור -מימוש
תיאור סְ כֵמַ טי של תור חוליות חוליה
תור עם ערך בודד
תור ריק
יציאה
Out
|| null
info
כניסה
יציאה
first
last
next
Out
info
info
first
last
info
info
In
|| null
כניסה
תור -פעולות הממשק סריקה ובנייה
In
10
5
תשע"ה/כסלו/י"ח
מימוש- טנ"מ תור
first
public class Queue<T>
{
info
next
התכונות//
private Node<T> first;
last
private Node<T> last;
info
next
בנאי//
public Queue()
{
מחזירה תור ריק//
תור ריק
this.first = null;
this.last = null;
Out
first
last
}
יציאה
info null
||
info
כניסה
In
11
פעולות הממשק סריקה ובנייה- תור
מימוש- טנ"מ תור
הוספה
public void Insert(T x)
}
התור אותחל- הנחה, לסוף התורx מכניסה את הערך//
temp
Node<T> temp = new Node<T>(x);
info
if (first == null)
first = temp;
null
else
Out
last.SetNext(temp);
next
first
יציאה
info
next
info
next
info
next
info
next
info
next
X
?תור ריק
first == null
√
Out
first
last
תור ריק
|| null
info
last = temp;
יציאה
info
In
כניסה
{
X
last
last
info
next
temp
Out
first
last
info
info
תור עם ערך בודד
יציאה
ne
xt
info
In
כניסה
|| null
In
12
6
פעולות הממשק סריקה ובנייה- תור
כניסה
י"ח/כסלו/תשע"ה
טנ"מ תור -מימוש
מחיקה
)(public T Remove
}
//מוציאה ומחזירה את הערך הנמצא בראש התור ,הנחה -התור אותחל ואינו ריק
תור עם ערך בודד
יציאה
next
√
Out
info
info
first
last
רק אחד בתור?
first == null
X
info
|| null
תור ריק
כניסה
In
יציאה
Out
||info null
כניסה
;)(T x = first.GetInfo
first
last
;)(first = first.GetNext
)if (first == null
יציאה
Out
next
info
first
next
info
first
next
info
next
info
next
info
כניסה
X
;last = null
;return x
{
last
In
info
In
13
תור -פעולות הממשק סריקה ובנייה
טנ"מ תור -מימוש
הצצה -ראש התור
)(public T Head
}
//מחזירה את הערך הנמצא בראש התור
//הנחה -התור אותחל ואינו ריק
;)(return first.GetInfo
{
האם ריק
)(public bool IsEmpty
}
//מחזירה האם התור ריק
//הנחה -התור אותחל
;return first == null
{
תור -פעולות הממשק סריקה ובנייה
14
7
תשע"ה/כסלו/י"ח
מימוש- טנ"מ תור
תוכן התור
public override string ToString()
}
מחזירה מחרוזת המתארת את תוכן התור//
התור אותחל- הנחה//
string s = "[";
Node<T> p = this.first;
while (p != null)
}
s = s + p.GetInfo().ToString();
if (p.GetNext() != null)
s = s + ",";
p = p.GetNext();
{
s = s + "]";
return s;
{
15
8
פעולות הממשק סריקה ובנייה- תור
© Copyright 2025