140 likes | 278 Views
Några datastrukturer. Länkade listor Binära träd. Länkad lista. PersonNod. PersonNod. PersonNod. PersonNod. nästa. nästa. nästa. nästa. Person-post. Person-post. Person-post. Person-post. Länkad lista: Print. Print. Global variabel: PersonNod första. denna = första.
E N D
Några datastrukturer Länkade listor Binära träd
Länkad lista PersonNod PersonNod PersonNod PersonNod nästa nästa nästa nästa Person-post Person-post Person-post Person-post
Länkad lista: Print Print Global variabel: PersonNod första denna = första denna = null Skriv ut namn denna = denna.nästa false true Stopp
Länkad lista: Print (JSP) Global variabel: PersonNod första Print denna = första Iteration (denna <> null) * Skriv ut namn denna = denna.nästa
Global variabel: PersonNod första Indata: Person p Add p.namn < första.p.namn false förra = första Skapa PersonNod nod för p true denna = första.nästa första är tom false nod.nästa = första p.namn < denna.p.namn true denna är tom false false första = nod första = nod true true förra.nästa = nod nod.nästa = denna förra = denna Stopp förra.nästa = nod denna = förra.nästa Stopp
Global variabel: PersonNod första Add Indata: Person p Selektion Skapa PersonNod nod för p (p.namn < första.p.namn) (första är tom) - o första = nod - o o nod.nästa = första första = nod förra = första denna = första.nästa Iteration förra.nästa = nod (denna <> null) * Selektion förra = denna denna = förra.nästa (p.namn < denna.p.namn) - o nod.nästa = denna förra.nästa = nod AVBRYT
Remove Global variabel: PersonNod första Indata: string mål = namnet på den person vi söker förra = null denna = första mål = denna.p.namn denna = null false false förra = denna denna = denna.nästa true true förra = null false första = nod true första = denna.nästa förra.nästa = denna.nästa Stopp Stopp
Global variabel: PersonNod första Indata: string mål = namnet på den person vi söker Remove denna = första Iteration Förra = null (denna <> null) * Selektion förra = denna denna = denna.nästa (nästa.p.namn = mål) o - Selektion AVBRYT (förra = null) o o första = denna.nästa förra.nästa = denna.nästa
PersonNod PersonNod PersonNod PersonNod nästa nästa nästa Person-post Person-post Person-post Person-post
Binära träd PersonNod Person-post right left PersonNod PersonNod Person-post Person-post right left right left PersonNod PersonNod Person-post Person-post right left right left
Add Indata: Person p, Node nod p.namn > nod.p.namn nod.right = null true true nod.right = NyNod(p) false Add (p, nod.right) false p.namn < nod.p.namn nod.left = null true true nod.left = NyNod(p) false false Add (p, nod.left) Stopp
Add Indata: Person p, Node nod Selektion (p.namn > nod.p.namn) (p.namn < nod.p.namn) o Höger Vänster (nod.right = null) (nod.left = null) nod.right = NyNod(p) Add (p, nod.right) nod.left = NyNod(p) Add (p, nod.left)
Find Indata: string namn, Node nod p.namn = nod.p.namn true R = null R = nod.p false p.namn > nod.p.namn nod.right = null true true R = Find (namn, nod.right) false false p.namn < nod.p.namn nod.left = null true true R = Find (namn, nod.left) false false Returnera R
Find Indata: string namn, Node nod R = null Selektion returnera R (p.namn < nod.p.namn) (p.namn > nod.p.namn) (p.namn = nod.p.namn) o Höger Vänster o Denna (nod.right <> null) (nod.left <> null) R = nod.p R = Find (namn, nod.right) R = Find (namn, nod.left)