Föreläsning 12: Chapter 8 - Data Abstractions

0.0(0)
studied byStudied by 0 people
full-widthCall with Kai
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/38

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

39 Terms

1
New cards

Vad är en abstrakt datatyp (abstract data type)?

En datatyp som innehåller både data och operationer för att hantera datat.

2
New cards

Vad kännetecknar ett sorterat binärt träd (sorted binary tree)?

Att varje nod i trädet har två eller färre subträd (barnnoder), alla noder i vänstra subträdet innehåller lägre värden än noden, och alla noder i högra subträdet innehåller högre värden än noden.

3
New cards

Vilka är de fyra grundläggande datastrukturerna utöver arrayer?

Listor, stackar, köer och träd.

4
New cards

Vad är skillnaden mellan en dynamisk och en statisk datastruktur?

En statisk datastruktur kan inte ändra form eller storlek över tid (endast innehåll kan ändras), medan en dynamisk datastruktur kan ändra form och storlek över tid.

5
New cards

Vad kännetecknar ett binärt träd?

En trädstruktur där varje nod kan ha maximalt två barn-noder.

6
New cards

Vad kallas datastrukturen som består av block av dataelement av samma typ?

Array.

7
New cards

Vad kännetecknar en array?

Ett block av data där alla element är av samma datatyp, och elementen nås genom index.

8
New cards

Vad kallas datastrukturen med element av olika typer, nås via namn?

Aggregattyp (struct/record/post).

9
New cards

Kan en lista implementeras som statisk eller dynamisk? Motivera.

En lista kan implementeras både statiskt (t.ex. med en array) och dynamiskt (med element och pekare).

10
New cards

Beskriv en stack.

En lista där man lägger till och tar bort element i samma ände enligt LIFO (Last In, First Out).

11
New cards

Vad kännetecknar en stack (LIFO)?

Det senaste elementet som lagts till tas bort först.

12
New cards

Vad är pushing och popping?

Pushing = lägga till element på stacken, Popping = ta bort element från stacken.

13
New cards

Beskriv en kö.

En lista där man lägger till i ena änden och tar bort i andra enligt FIFO (First In, First Out).

14
New cards

Vad kännetecknar en queue (FIFO)?

Det första elementet som lagts till tas bort först.

15
New cards

Vad är en enqueing och dequeing?

Enqueing = lägga till element i kön, Dequeing = ta bort element från kön.

16
New cards

Kan en array användas för att implementera en kö? Motivera.

Ja, genom att beskriva kön som cirkulär med pekare till huvud (start) och svans (slut).

17
New cards

Vad är en abstrakt datastruktur?

En abstrakt datastruktur beskriver en datatyp och dess operationer – vad som lagras och vad man kan göra med det.

18
New cards

Vad är en record/struct?

En sammansatt datastruktur som är en samling av data som kan vara av olika datatyper.

19
New cards

Skillnad mellan abstrakt datatyp och record/struct?

En abstrakt datatyp innehåller både data och operationer, medan en record/struct endast är en samling data (utan operationer).

20
New cards

Ge exempel på LIFO och FIFO datastrukturer.

LIFO = Stack, FIFO = Kö (Queue).

21
New cards

Vad är en pekare / reference (pointer)?

En variabel som innehåller minnesadressen till det den pekar på.

22
New cards

Vad kännetecknar en aggregattyp (struct/record)?

Ett block av data där olika element kan vara av olika datatyp, fälten nås med namn.

23
New cards

Vad kännetecknar en statisk datastruktur?

Strukturens form eller storlek kan inte förändras över tid (endast innehåll).

24
New cards

Vad kännetecknar en dynamisk datastruktur?

Strukturens form och storlek kan förändras över tid (kräver pekare).

25
New cards

Vad kännetecknar rotnoden i ett träd?

Att den inte har någon förälder.

26
New cards

Vad är skillnaden mellan en array och en lista?

Array = statisk, sekventiell lagring. Lista = dynamisk, högre abstraktionsnivå, hanterar minne via pekare.

27
New cards

Vad heter början respektive slutet på en lista?

Början = HEAD, slut = TAIL.

28
New cards

Vad är ett träd (tree)?

En hierarkisk datastruktur med root node högst upp och leaf nodes längst ned.

29
New cards

Vad är en root node, leaf node, subträd och sibling?

Root node = rot, Leaf node = löv (ingen barnnod), Subträd = träd inom ett träd, Siblings = noder med samma förälder.

30
New cards

Vad är ett binärt träd (binary tree)?

En trädstruktur där varje nod kan ha högst två barn (0, 1 eller 2).

31
New cards

Hur kan ett binärt träd representeras?

Med pekare (noder pekar på barn) eller med array (barnens index beräknas).

32
New cards

Hur implementeras arrays?

Alla element lagras i sekventiellt minne, åtkomst via index.

33
New cards

Hur implementeras aggregate types?

Element nås via namn; kan lagras i minne med kända storlekar eller via pekare.

34
New cards

Hur implementeras lists?

Med pekare där varje element pekar på nästa (dynamiskt), eller som array (statisk).

35
New cards

Hur implementeras stacks?

Med array (top-index) eller lista (pekare till top).

36
New cards

Hur implementeras queues?

Med array (cirkulär representation) eller lista med pekare till huvud och svans.

37
New cards

Hur implementeras binary trees med pekare och utan pekare?

Med pekare: varje nod pekar på sina barn. Utan pekare: representeras i array där index används för barnnoder.

38
New cards

Vad är user-defined / customized data types?

Användardefinierade datatyper som kan innehålla både data och operationer.

39
New cards

Vad är hög respektive låg abstraktionsnivå?

Hög = enklare, nära mänskligt språk (t.ex. Python). Låg = detaljerad, nära maskinens sätt att arbeta (t.ex. maskinkod).