Länkade listor Binära träd Några datastrukturer Länkade listor Binära träd
Länkad lista PersonNod PersonNod PersonNod PersonNod 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
Skapa PersonNod nod för p Global variabel: PersonNod första Indata: Person p Add p.namn < första.p.namn false Skapa PersonNod nod för p förra = första 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
Skapa PersonNod nod för p Add Iteration * Selektion (denna <> null) Global variabel: PersonNod första Indata: Person p Skapa PersonNod nod för p första = nod o - (första är tom) nod.nästa = första (p.namn < första.p.namn) förra = första denna = första.nästa nod.nästa = denna förra.nästa = nod AVBRYT förra = denna denna = förra.nästa förra.nästa = nod (p.namn < denna.p.namn)
förra.nästa = denna.nästa 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 Förra = null denna = första Iteration (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 left right PersonNod PersonNod
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) Höger o 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) Höger o Vänster Denna o (nod.right <> null) (nod.left <> null) R = nod.p R = Find (namn, nod.right) R = Find (namn, nod.left)