Presentation laddar. Vänta.

Presentation laddar. Vänta.

För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och data strukturer -Länkade listor Algoritmer och data strukturer -Länkade listor.

Liknande presentationer


En presentation över ämnet: "För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och data strukturer -Länkade listor Algoritmer och data strukturer -Länkade listor."— Presentationens avskrift:

1 För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och data strukturer -Länkade listor Algoritmer och data strukturer -Länkade listor

2 För utveckling av verksamhet, produkter och livskvalitet. Statisk minnesallokering Statiska minnesstrukturer (Arrayer) För stora / För små ”Jobbiga” add(index i) / remove( index i) operationer 0 n ???

3 För utveckling av verksamhet, produkter och livskvalitet. Dynamisk minnesallokering Separata ”noder” Allokeras vid behov Avallokeras när de inte längre behövs Håller information om: Nodens data Adress till nästa nod

4 För utveckling av verksamhet, produkter och livskvalitet. En kedja av data Minne

5 För utveckling av verksamhet, produkter och livskvalitet. En länk (nod) i kedjan Olika sorters listor Enkellänkade listor Dubbellänkade listor Cirkulära länkade listor Data Adress till nästa länk i kedjan public class ListNode { public Object element; public ListNode nextAddress; }

6 För utveckling av verksamhet, produkter och livskvalitet. Klassen ListNode / av Object class ListNode { public Object element; public ListNode nextAddress; public ListNode( Object theElement ) { element= theElement; nextAddress= null; } public ListNode( Object theElement, ListNode n ) { element = theElement; nextAddress = n; } En nod INNEHÅLL Konstruerare 1, skapar en ”ej länkad nod ” Konstruerare 2, skapar en länkad nod

7 För utveckling av verksamhet, produkter och livskvalitet. Klassen LinkedList class LinkedList { private ListNode head; public LinkedList ( ) { head = new ListNode( null ); } // metoder som : add(), remove(), find() …… Listans huvud Konstruerare, skapar en ”tom” nod som head ” känner till”

8 För utveckling av verksamhet, produkter och livskvalitet. Enkellänkade listor Varje länk har en referens till nästa länk i listan Kräver kännedom om ”föregående länk” vid insert() / remove() operationer Minne Huvud next Huvud next 1 next 1 next 2 next 2 next 3 next 3 next null

9 För utveckling av verksamhet, produkter och livskvalitet. Huvud / Svans När är listan slut? När sista länkens nextAddress = null Testa p å null under traverseringen public void print() { ListNode temp=head.nextAddress; while( temp!=null ){ System.out.println(temp.element); temp=temp.nextAddress; } B ä ttre s ä tt – Huvud / Svans! ” Dummy ” -l ä nkar som aldrig tas bort eller b ä r v ä rden

10 För utveckling av verksamhet, produkter och livskvalitet. List traversering Ingen möjlighet till indexering som hos statiska arrayer! ”Länk för länk” med start på första länken tills rätt position hittad! public ListNode getNode(Object x) { ListNode temp = head.next; while(temp.element != x) temp = temp.nextAddress; return temp; }

11 För utveckling av verksamhet, produkter och livskvalitet. Huvud / Svans Minne Huvud next Huvud next 1 next 1 next Svans next Svans next

12 För utveckling av verksamhet, produkter och livskvalitet. OBS! Först länka mot svansen sedan bryt länken från huvud Minne Huvud next Huvud next 1 next 1 next Svans next Svans next 2 next 2 next

13 För utveckling av verksamhet, produkter och livskvalitet. Vanliga operationer på länkade listor add() add( int index) remove() find() get( int index) iterator() contains() size() I java gäller operationerna från List interface

14 För utveckling av verksamhet, produkter och livskvalitet. Dubbellänkade listor Varje länk har en referens till nästa länk OCH en referens till föregående länk i listan. Förenklar listmanipulationer add( int index) remove() Minne Huvud prev next Huvud prev next 1 prev next 1 prev next Svans prev next Svans prev next

15 För utveckling av verksamhet, produkter och livskvalitet. Cirkulära listor Ta bort svansen och huvudet och knyt ihop liständarna Minne

16 För utveckling av verksamhet, produkter och livskvalitet. Fördelar/ Nackdelar Effektiv när man lägger till och tar bort element Effektiv att hålla listan sorterad Betydligt mer effektivt vid stora datamängder genom att dirigera om pekarna istället för själva länkinnehållet Effektiv användning av minne. Något långsammare, pga. Många minnesallokering Många referensmanipulationer, lite svårare vid implementera och debbug


Ladda ner ppt "För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och data strukturer -Länkade listor Algoritmer och data strukturer -Länkade listor."

Liknande presentationer


Google-annonser