רשימה מקושרת linked lists

8
תתתתת תתתתתתLinked Lists

Upload: hanne

Post on 06-Jan-2016

15 views

Category:

Documents


0 download

DESCRIPTION

רשימה מקושרת Linked Lists. דוגמא. STRING איך עושים Dim x as String בלי לדעת מראש את הגודל!. A. C. B. A. Linked Lists. A linked list is a series of connected nodes Each node contains at least A piece of data (any type) Pointer to the next node in the list - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: רשימה מקושרת Linked Lists

רשימה מקושרתLinked Lists

Page 2: רשימה מקושרת Linked Lists

דוגמא

•STRING בלי לדעת מראש Dim x as Stringאיך עושים •

את הגודל!

Page 3: רשימה מקושרת Linked Lists

Linked Lists

• A linked list is a series of connected nodes• Each node contains at least

– A piece of data (any type)– Pointer to the next node in the list

• Head: pointer to the first node• The last node points to NULL

A

Head

B C

A

data pointer

node

www.cs.ust.hk/~qyang/171/linked-list.ppt

Page 4: רשימה מקושרת Linked Lists

?על מה בנוי רשימה מקושרת

(LINK או NODEקדקוד )•המידע ששומרים )או אוסף המידע(–קישור לקדקוד הבא )מידי פעם גם לקדקוד הקודם(–

(LINKED LISTמחלקה לניהול הקדקודים )•(CONSTRUCTORפונקציית בנאי )–שמירת מקום של הקודקוד הראשון–, וכו'(PRINT, ADD, DELETEפונקציית עזר )–

Page 5: רשימה מקושרת Linked Lists

LINKדוגמא של

Public Class Link Private m_MyData As String Private m_NextLink As Link Public Sub New(ByVal myParent As Link, ByVal theData As String) m_MyData = theData myParent.m_NextLink = Me End Sub Public Sub New(ByVal theData As String) m_MyData = theData End Sub Function MyData() As String Return m_MyData End Function Function NextLink() As Link Return m_NextLink End FunctionEnd Class

Page 6: רשימה מקושרת Linked Lists

LINKEDLISTדוגמא של Public Class LinkedList Private m_CurrentLink As Link Private m_FirstLink As Link Private Size As Integer Public Sub New(ByVal theData As String) m_CurrentLink = New Link(theData) m_FirstLink = m_CurrentLink Size = 1 End Sub Public Function MakeLink(ByVal currentLink As Link, ByVal theData As String) As Link m_CurrentLink = New Link(currentLink, theData) Size = Size + 1 Return m_CurrentLink End Function Function GetNextLink(ByVal aLink As Link) As Link Return aLink.NextLink() End Function Function GetCurrentLink() As Link Return m_CurrentLink End Function Function GetFirstLink() As Link Return m_FirstLink End Function Public Sub PrintAll() Dim i As Integer Dim temp As Link = m_FirstLink For i = 0 To Size - 1 Console.WriteLine("Contents of Place " & i & " is :") Console.WriteLine(temp.MyData) temp = temp.NextLink Next End SubEnd Class

Page 7: רשימה מקושרת Linked Lists

(MAINשימוש במחלקה )

Module Module1 Sub Main() Dim List As New LinkedList("Avi") Dim aLink As Link = List.GetCurrentLink aLink = List.MakeLink(aLink, "Bob") aLink = List.MakeLink(aLink, "Chaim") List.PrintAll() End SubEnd Module

Page 8: רשימה מקושרת Linked Lists

???שיפורים להדפיס טווח של קדקודים•

להדפיס את הרשימה בסדר יורד•

חיפוש אחרי מידע )ולהחזיר את התא או התאים שבו הוא נמצא•

להכניס כמה סוגי מידעNODE שינוי של ה•

איך????????????•