Datastrukturer Simple-type structs

Slides:



Advertisements
Lignende præsentationer
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Advertisements

1 • Best practice for exception handling • Exception klasser • Division med nul uden exception handling • Division med nul med exception handling •. NET.
Sidetyper Web-udvikling med FrontPage 2003 RHS - Informationsteknologi.
Velkommen til Softwarekonstruktion
REGISTRERINGSDATABASEN
1 Intro nedarvning (eng.: inheritance) Nedarvningshierarkier Intro polymorfisme (eng.: polymorphism) Abstract / virtual / override / sealed Intro interfaces.
1 Menuer (MenuStrip) MonthCalendar + DateTimePicker ListBox & CheckedListBox ComboBox Faneblade (eng.: tabs) med TabControl Steen Jensen, efterår 2013.
Tegning af en parabel I hånden.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
Grundlæggende programmering Efterår 2001
1 Filer - intro Data-hierarki Filer og strømme (eng.: streams) af bytes Klasserne File og Directory Oprettelse af sekventiel tekstfil Læsning af data fra.
Structs Structs allokeres på stakken Memory-allokering sker ved oprettelse af variabel og ikke ved new Der kan defineres metoder incl. Constructor. Eksempel.
Søgning & sortering Intro søgning Lineær søgning Binær søgning
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
GP12, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 12 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
FEN Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler.
Begreber og Redskaber 2 BRP.
Delphi og C++ Builder C++ Referencer og pointere.
Datastrukturer og Collections Rasmus D. Lehrmann DM
1 Datalogi C Datastrukturer og algoritmer ved Keld Helsgaun.
1 Bestanddele i en Windows form-løsning GUI kontroller (eng.: controls) & komponenter (eng.: components) Almindelige egenskaber, metoder & hændelser for.
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
1 Søgning I. 2 Plan Sekventiel søgning Binær søgning Binære søgetræer Balancerede binære søgetræer træer.
Forelæsning 3.1 Collections Javas for-each løkke
Intro til C# apps Kodegennemgang af simpel C# app
Af Ulrik, Ella-Josephine, Nikolaos og Christoffer.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
Algoritmer og Datastrukturer 1
Objekter og klasser Rasmus D. Lehrmann DM
Grafalgoritmer II.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Procestræ under afvikling af cp init login shell cp cp src dest.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Primitive typer. dIntProg, F08Typer.2 Subtyperelation for primitive typer byte ≤ short ≤ int ≤ long ≤ float ≤ double char boolean double d; int i; d =
FEN KbP/seminar2: design21 Kontraktbaseret programmering Seminar 2 Klassedesign: Immutable lister Queue Shallowcopy og alkvantoren.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
1 Implementering af fundamentale datastrukturer. 2 Stakke og køer Array-repræsentation Liste-repræsentation Hægtede lister Træer Terminologi Traversering.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
C#: Data Typer. 2 Nordjyllands Erhvervakademi Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies,
Forelæsning 7.1 – repetition
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal Aarhus Universitet.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
Fundamentale sprogbegreber Typer. dIntProg, F08Typer.2 Typer Primitive typer –boolean –byte, char, short, int, long, float, double Objekttyper –klassetype.
Multiple processer på web-site Web- server filer Kunde 1 Kunde 2 Kunde p1p2p internet.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Quiz – Uge 9 – mandag – første time
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

Datastrukturer Simple-type structs Selvrefererende (eng.: self-referential) objekter Sammenkædet liste (eng.: linked list) Stak (eng.: stack) Kø (eng.: queue) Binært søgetræ (eng.: binary search tree) ArrayList Steen Jensen, efterår 2013

Simple-type structs Hver simple type, fx bool, int, float (se appendix B i bogen) har en tilsvarende struct i namespace System, som definerer den simple type Disse structs hedder Boolean, Byte, Sbyte, Char, Decimal, Double, Single, Int16, UInt16, Int32, UInt32, Int64, UInt64 Simple typer er egentlig aliasser for deres tilsvarende structs Fx kan en variabel af type defineres enten af typen int eller Int32

Selvrefererende (eng.: self-referential) objekter Et selvrefererende objekt kan referere til et andet objekt af samme type Selvrefererende objekter kan kædes sammen og på denne måde udgøre brugbare datastrukturer, såsom lister, køer, stakke og træer

Sammenkædet liste (eng.: linked list) En sammenkædet liste (eng.: linked list) er en lineær samling af selvrefererende objekter (kaldt noder (eng.: nodes)) kædet sammen via reference links

Øvelse – linked list Gå ind på http://dotnet.dzone.com/articles/introduction-linked-lists-c Læs/kig tekst og eksempler igennem – efter du har gjort det, skal du kunne redegøre for følgende i plenum: Hvilke 2 problemer i.f.t. arrays løser linked list? Hvad indeholder en linked list node? Hvordan angives, at der ikke er en node før/efter en given node? Hvad gør metoderne AddFirst og AddLast ? Hvad gør metoderne AddBefore og AddAfter ? Hvad gør metoderne Find og Find Last ?

Stak (eng.: stack) En stak (eng.: stack) kan betragtes som en udgave af en linked list med restriktionen, at nye noder kun anbringes i toppen af stakken, samt at noder frigøres/fjernes fra toppen En stak kaldes derfor for en LIFO datastruktur (last-in, first-out)

Øvelse 1 – stack Gå ind på http://www.dotnetperls.com/stack Læs/kig tekst og eksempler igennem – efter du har gjort det, skal du kunne redegøre for følgende i plenum: Hvad gør metoderne Push og Pop ? Hvad er forskellen på Pop og Peek ? Hvad er formålet med egenskaben (eng.: property ) Count ? Hvad er formålet med metoden Clear ? Hvad gør metoden Contains ?

Øvelse 2 – stack Gå ind på http://www.dotnetspider.com/resources/1155-Using-Stack-C-Sharp.aspx Læs/kig eksemplerne igennem Copy/paste derefter kode ind i Visual Studio - NB! En vigtig ændring: System.Collections.Generic skal ændres til System.Collections Kør koden Lav koden om, så brugeren kan indtaste, hvor mange grøntsager, der skal blive tilbage i stakken. Fjern elementer fra stakken svarende til brugerens indtastning og udskriv til sidst den resterende stak

Kø (eng.: queue) En kø (eng.: queue) kan sammenlignes med en kø i supermarkedet Den første person i køen bliver betjent først Nye kunder stiller sig for enden af køen og venter på deres tur Noder i en kø indsættes for enden, og noder fjernes fra toppen En stak kaldes derfor for en FIFO datastruktur (first-in, first-out)

Øvelse 1 – kø (eng.: queue) Gå ind på http://www.dotnetperls.com/queue Læs/kig tekst og eksempler igennem – efter du har gjort det, skal du kunne redegøre for følgende i plenum: Hvilken metode bruges til at tilføje et element i køen ? Hvilken metode bruges til at fjerne et element i køen ?

Øvelse 2 – kø (eng.: queue) Gå ind på https://www.video2brain.com/en/lessons/generic-queue-queue60t62 Se videoen igennem (varer ca. 5 min.) – efter du har set videoen, skal du kunne redegøre for følgende i plenum: Hvilken virkelighedstro problemstilling løses med en kø i videoen? Hvad sker efter det 1. element i køen er behandlet?

Binært søgetræ (eng.: binary search tree) Et binært søgetræ (eng.: binary search tree) har følgende egenskaber: værdier i venstre subtræ er mindre end værdien i subtræets forældrenode (eng.: parent node) værdier i højre subtræ er større end værdien i subtræets forældrenode (eng.: parent node)

Øvelse 1 – binært søgetræ (eng.: binary search tree) Gå ind på http://www.csharpguru.in/2013/09/binary-search-tree-implementation-in-c-sharp.html Læs/kig tekst og eksempler igennem ned til før kodeeksemplet ”Implementation of binary search tree (BST) in C#” – efter du har gjort det, skal du kunne redegøre for følgende i plenum: Hvilken 3 egenskaber (eng.: properties) har et træ ? Definer begreberne root, left child, right child, siblings, leaf nodes

Øvelse 2 – – binært søgetræ (eng.: binary search tree) Gå ind på http://www.youtube.com/watch?v=5DW5ScDBH-E Se videoen igennem (varer ca. 14 min.) – efter du har set videoen, skal du kunne redegøre for følgende i plenum: Forklar hovedprincipperne for algoritmen for at tilføje en ny node i træet

Øvelse 3 – binært søgetræ (eng.: binary search tree) Gå ind på http://www.csharpguru.in/2013/09/binary-search-tree-implementation-in-c-sharp.html (samme link som øv. 1) Copy/paste kode ind i Visual Studio Kør koden Udvid koden, så du lægger flere værdier ind i træet

ArrayList Klassen ArrayList giver mulighed for at arbejde med arrays af dynamisk størrelse

Øvelse – ArrayList Gå ind på http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx Kig metoderne igennem (udvælg) – for hver metode: klik på link’et og kig på det viste kodeeksempel Kig som minimum metoder til at oprette (Add, Insert), og slette (Remove) igennem Prøv evt. også at copy/paste de udvalgte kodeeksempler ind i Visual Studio og kør dem. Find også meget gerne selv på ændringer til eksemplerne