Shapes & Disfigurements Of Raymond Antrobus SAMPLEBurning Eye
This collection of poetry by Raymond Antrobus explores themes of family, identity, loss, and the human experience through vivid and emotional verses. The poems capture everyday encounters and global experiences in a raw yet engaging voice. Critics praise Antrobus for finding his own powerful poetic voice to speak the truths of human existence.
This document describes the layout of a public high school located in prefabricated modules in Berguedà, Berga. The school, opened in 2006, contains computer, art, and science labs across 5 modules that house classrooms for different grades, teacher offices, and an administration building. An outdoor playground is also included on the school grounds.
The document summarizes the opening of a new secondary school, SES Yard, in Catalonia, Spain in March 2005/2006. Students from primary schools could choose between the existing IES Guillem Berguedà center or the newly created SES Yard. In the beginning, SES Yard was still under construction and only had one building completed. By September 12, classes started and more facilities like a computer room and sports courts were added by late September and February. The local city council and IES Guillem Berguedà helped prepare the new school for its opening in the summer of 2005.
1) The representatives are from SI SERRA DE NOET High School in Berga, Catalonia. They are students in 3rd ESO A.
2) In Spain, high school has four courses that typically correspond to ages 12-16. Students are currently in their 3rd course, ages 14-15.
3) This year, classes are from 8:15am to 2:45pm, all in the morning, unlike last year when classes were split between morning and afternoon with lunch in between.
Pliny's Natural History discusses various types of marble used in ancient Rome for sculpture, architecture, and medicine. It describes the marble quarries and trade routes that supplied marble throughout the Roman Empire for prominent buildings like the Porticus Octaviae in Rome. Marble was also used to craft famous sculptures such as the Venus of Cnidus and reconstructions of Phidias' Olympian Zeus and Athena Parthenos. The text also explores how architecture reflected political changes in Rome and examines the use of various stones and minerals for medical purposes in the 1st century.
Vargar Planet is described as a peaceful place where people live healthy, long lives without violence or poverty. The primary religion is Christianity, but others are also practiced. There are several cultural customs celebrated, including Mother's Day, Father's Day, and New Year's. The planet has various tourist attractions such as zoos, museums, amusement parks, natural parks, and festivities. Transportation includes advanced modes like magnetized subways and wheel-less cars. The cuisine focuses on fruits, candies, and juices. Tourist packages of different durations and inclusions are available.
The document is a presentation from PTOLEMUS Consulting Group about their Insurance Telematics Study report. The presentation provides a high-level 3 sentence summary:
PTOLEMUS Consulting Group conducted a comprehensive 400 page study analyzing the PAYD/PHYD insurance market based on over 60 interviews and 10 years of research, including market forecasts and case studies. The study examines the evolving value chain and strategic issues for insurers, telematics service providers, car OEMs, and governments. The report aims to help these players leverage learnings from insurance telematics trials to make it a reality.
Shapes & Disfigurements Of Raymond Antrobus SAMPLEBurning Eye
This collection of poetry by Raymond Antrobus explores themes of family, identity, loss, and the human experience through vivid and emotional verses. The poems capture everyday encounters and global experiences in a raw yet engaging voice. Critics praise Antrobus for finding his own powerful poetic voice to speak the truths of human existence.
This document describes the layout of a public high school located in prefabricated modules in Berguedà, Berga. The school, opened in 2006, contains computer, art, and science labs across 5 modules that house classrooms for different grades, teacher offices, and an administration building. An outdoor playground is also included on the school grounds.
The document summarizes the opening of a new secondary school, SES Yard, in Catalonia, Spain in March 2005/2006. Students from primary schools could choose between the existing IES Guillem Berguedà center or the newly created SES Yard. In the beginning, SES Yard was still under construction and only had one building completed. By September 12, classes started and more facilities like a computer room and sports courts were added by late September and February. The local city council and IES Guillem Berguedà helped prepare the new school for its opening in the summer of 2005.
1) The representatives are from SI SERRA DE NOET High School in Berga, Catalonia. They are students in 3rd ESO A.
2) In Spain, high school has four courses that typically correspond to ages 12-16. Students are currently in their 3rd course, ages 14-15.
3) This year, classes are from 8:15am to 2:45pm, all in the morning, unlike last year when classes were split between morning and afternoon with lunch in between.
Pliny's Natural History discusses various types of marble used in ancient Rome for sculpture, architecture, and medicine. It describes the marble quarries and trade routes that supplied marble throughout the Roman Empire for prominent buildings like the Porticus Octaviae in Rome. Marble was also used to craft famous sculptures such as the Venus of Cnidus and reconstructions of Phidias' Olympian Zeus and Athena Parthenos. The text also explores how architecture reflected political changes in Rome and examines the use of various stones and minerals for medical purposes in the 1st century.
Vargar Planet is described as a peaceful place where people live healthy, long lives without violence or poverty. The primary religion is Christianity, but others are also practiced. There are several cultural customs celebrated, including Mother's Day, Father's Day, and New Year's. The planet has various tourist attractions such as zoos, museums, amusement parks, natural parks, and festivities. Transportation includes advanced modes like magnetized subways and wheel-less cars. The cuisine focuses on fruits, candies, and juices. Tourist packages of different durations and inclusions are available.
The document is a presentation from PTOLEMUS Consulting Group about their Insurance Telematics Study report. The presentation provides a high-level 3 sentence summary:
PTOLEMUS Consulting Group conducted a comprehensive 400 page study analyzing the PAYD/PHYD insurance market based on over 60 interviews and 10 years of research, including market forecasts and case studies. The study examines the evolving value chain and strategic issues for insurers, telematics service providers, car OEMs, and governments. The report aims to help these players leverage learnings from insurance telematics trials to make it a reality.
This document provides step-by-step instructions for face and body painting techniques. It describes the process of creating body paintings like "living art" through adding color, black accents, pink, jewels, and final touch ups. It also outlines how to paint face makeups like Day of the Dead sugar skulls by getting started, filling in features, adding black detail, and finishing. The document credits models and photographers who have worked with the body painter.
Please keep in mind when viewing this that my audio isn't working. There is music on the first slides then when it gets to the discription part I will actually be telling how it's done. Thanks!
This document is a track listing and credits for the EP "Make Me Wait" by musician JT Hillier. It lists the 6 song titles on the EP, along with information about the producer, photographer, graphic designer, and copyright. It also includes details about upcoming shows and ways to connect with JT Hillier online.
This document provides step-by-step instructions for face and body painting techniques. It describes the process of creating body paintings like "living art" through adding color, black accents, pink, jewels, and final touch ups. It also outlines how to paint face makeups like Day of the Dead sugar skulls by getting started, filling in features, adding black detail, and finishing. The document credits models and photographers who have worked with the body painter.
Please keep in mind when viewing this that my audio isn't working. There is music on the first slides then when it gets to the discription part I will actually be telling how it's done. Thanks!
This document is a track listing and credits for the EP "Make Me Wait" by musician JT Hillier. It lists the 6 song titles on the EP, along with information about the producer, photographer, graphic designer, and copyright. It also includes details about upcoming shows and ways to connect with JT Hillier online.
1. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Pile
Code
Strutture dati
Alberi
J. Glenn Brookshear, Computer Science: An Overview
Organizzazione
nella memoria Capitolo 8: Data Abstractions
Puntatori
Strutture statiche
e dinamiche
Memorizzazione Arianna Guidolin
delle strutture
Array
Liste Universit` degli Studi di Trento
a
Pile e code
Alberi binari
Creazione di tipi
di dati
4 maggio 2012
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 1 / 35
2. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Pile
Array
Code
Alberi
Organizzazione
nella memoria
Si chiamano array le strutture di dati organizzate come vettori o
Puntatori
matrici.
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Array che contengono dati dello stesso tipo si dicono omogenei,
Liste mentre array che contengono dati di diverso tipo si dicono eterogenei
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 1 / 35
3. Strutture dati
Arianna Guidolin
Strutture Liste
Array
Liste
Pile
Code Una lista ` una collezione di dati organizzati sequenzialmente
e
Alberi
Organizzazione L’inizio di una lista si chiama testa, la fine coda
nella memoria
Puntatori Le operazioni che si possono fare su una lista sono:
Strutture statiche
e dinamiche rimuovere elementi
Memorizzazione
delle strutture aggiungere elementi
Array
Liste controllare quali elementi sono presenti
Pile e code
Alberi binari cambiare l’ordine degli elementi
Creazione di tipi
di dati cercare un determinato elemento
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 2 / 35
4. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Pile
Code Esempi di liste
Alberi
Organizzazione Mario ← testa
nella memoria
Puntatori Giovanni
Strutture statiche
e dinamiche Francesca
Memorizzazione
delle strutture Lucia ← coda
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 3 / 35
5. Strutture dati
Arianna Guidolin
Strutture
Array
Liste Esempi di liste
Pile
Code
Alberi
De Nicola ←coda
Pertini
Organizzazione
nella memoria Einaudi
Cossiga
Puntatori
Gronchi
Strutture statiche
e dinamiche
Scalfaro
Segni
Memorizzazione
delle strutture
Ciampi
Array Saragat
Liste Napolitano ←testa
Pile e code
Alberi binari
Leone
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 4 / 35
6. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Pile
Possiamo imporre delle restrizioni sui modi in cui gli elementi
Code vengono aggiunti o eliminati da una lista
Alberi
Organizzazione
nella memoria
Puntatori
Strutture statiche
Una pila (stack) ` una lista in cui i vari elementi possono essere
e
e dinamiche
inseriti o rimossi solo dalla testa
Memorizzazione
delle strutture
Array
Otteniamo un modello di struttura LIFO (Last In, First Out):
Liste
Pile e code
l’ultimo elemento inserito nella lista sar` il primo ad essere tolto
a
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 5 / 35
7. Strutture dati
Arianna Guidolin
Strutture
Array
Esempio
Liste
Pile
Code
Alberi
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
pila di libri
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 6 / 35
8. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Pile
Code
Una coda (queue) ` una lista in cui i termini possono essere inseriti
e
Alberi solo in coda e rimossi solo dalla testa
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche Una coda ha una struttura di tipo FIFO (First In, First Out): il
Memorizzazione primo elemento ad essere inserito corrisponde al primo elemento che
delle strutture
Array verr` tolto
a
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 7 / 35
9. Strutture dati
Arianna Guidolin
Strutture
Array
Esempio
Liste
Pile
Code
Alberi
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
fila di bambini
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 8 / 35
10. Strutture dati
Arianna Guidolin
Alberi
Strutture
Array
Liste
Pile Un albero ` una collezione di elementi organizzati in modo gerarchico
e
Code
Alberi
Organizzazione
nella memoria
radice
Puntatori
Strutture statiche
e dinamiche
Memorizzazione nodo nodo
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
foglia foglia foglia foglia
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 9 / 35
11. Strutture dati
Arianna Guidolin
Esempio
Strutture
Array
Liste
Pile
Code
Alberi
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
NASA Astrobiology Institute
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 10 / 35
12. Strutture dati
Arianna Guidolin
Strutture
Array
Liste Nella memoria principale del computer i dati sono organizzati come
Pile
Code successione di celle di memoria
Alberi
Organizzazione
nella memoria
L’organizzazione secondo le strutture di alberi, liste o array riguarda
Puntatori
gli utenti ed ` solo simulata all’interno di un computer in modi diversi
e
Strutture statiche
a seconda della struttura voluta:
e dinamiche
Memorizzazione
gli utenti non vedono come i dati sono organizzati nella memoria
delle strutture
Array
l’accesso ai dati avviene come se fossero organizzati secondo la
Liste
Pile e code
struttura desiderata
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 11 / 35
13. Strutture dati
Arianna Guidolin
Strutture
Array Ogni cella di memoria ` identificata da un indirizzo, che ` un valore
e e
Liste
Pile numerico
Code
Alberi
Anche l’indirizzo di una cella viene memorizzato in una cella di
Organizzazione
nella memoria memoria, chiamata puntatore
Puntatori
Strutture statiche
Ogni elemento di una struttura ` memorizzato in una cella, e quindi il
e
e dinamiche
puntatore di un determinato elemento contiene l’indirizzo della cella
Memorizzazione
delle strutture in cui questo elemento ` memorizzato
e
Array
Liste Le strutture elencate corrispondono quindi a determinati modi di
Pile e code
Alberi binari organizzare le celle di memoria e i puntatori
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 12 / 35
14. Strutture dati
Arianna Guidolin
Strutture Le strutture in cui sono organizzati i dati possono essere di tipo
Array
Liste statico oppure dinamico.
Pile
Code
Alberi
Una struttura statica ` utile quando si deve accedere ai dati per
e
Organizzazione leggerli o cambiare i loro valori, ma la dimensione o la configurazione
nella memoria
della struttura non cambiano nel tempo. Nel momento della creazione
Puntatori
Strutture statiche
della struttura si riserva lo spazio necessario per contenere i suoi dati
e dinamiche
Memorizzazione
Se invece c’` bisogno di aggiungere o rimuovere elementi, o
e
delle strutture
modificare la struttura, si usa un tipo di struttura dinamica. In
Array
Liste questo caso si deve considerare il fatto che la struttura pu` crescere e
o
Pile e code
Alberi binari quindi potrebbe essere necessario spostare i dati in una parte di
Creazione di tipi
di dati
memoria in cui c’` pi` spazio disponibile
e u
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 13 / 35
15. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Pile
Array omogenei 1-dimensionali
Code
Alberi
Organizzazione
nella memoria
Identifichiamo i dati nell’array grazie alla loro posizione
Puntatori
I dati vengono memorizzati in una successione di celle di memoria
Strutture statiche
e dinamiche con indirizzi consecutivi
Memorizzazione
delle strutture Se x ` l’indirizzo della prima cella di memoria, allora l’indirizzo della
e
Array
Liste j-esima cella di memoria ` x + (j − 1)
e
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 14 / 35
16. Strutture dati
Arianna Guidolin
Array omogenei 2-dimensionali
Strutture
Array
Liste
Si memorizzano i dati riga per riga oppure colonna per colonna. Nella
Pile
Code
rappresentazione per riga, se x ` l’indirizzo della prima cella di
e
Alberi memoria e il numero di colonne ` c, l’indirizzo dell’elemento che sta
e
Organizzazione
nella memoria
nella i-esima riga e j-esima colonna `e
Puntatori
Strutture statiche
x + c(i − 1) + (j − 1)
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 15 / 35
17. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Pile
Array eterogenei
Code
Alberi
Organizzazione
nella memoria
Se il numero di celle richieste per ogni componente dell’array ` fisso,
e
Puntatori
possiamo memorizzarlo in un blocco di celle consecutive come nel
Strutture statiche
caso di array omogenei
e dinamiche
Memorizzazione Se ad esempio abbiamo tre componenti che richiedono
delle strutture
Array
rispettivamente n, m, l celle di memoria e x ` l’indirizzo della prima
e
Liste
Pile e code
cella, l’indirizzo della prima cella della seconda componente ` x + n
e
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 16 / 35
18. Strutture dati
Arianna Guidolin
Strutture
Array Nel caso di array dinamici, ogni componente viene memorizzata in
Liste
Pile
una porzione di memoria separata
Code
Alberi Le varie componenti sono poi collegate utilizzando puntatori
Organizzazione
nella memoria
Ad esempio se si deve memorizzare un array eterogeneo formato da
Puntatori
tre componenti, in memoria bisogna anche riservare uno spazio per i
Strutture statiche
e dinamiche puntatori. Se il blocco di memoria in cui questi sono memorizzati ha
Memorizzazione
delle strutture
indirizzo x, possiamo trovare la prima componente dell’array
Array guardando a cosa punta il puntatore con indirizzo x, e per accedere
Liste
Pile e code alla componente successiva dell’array bisogna riferirsi a quanto
Alberi binari
riportato nel puntatore che ha indirizzo x + 1
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 17 / 35
19. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Liste
Pile
Code
Alberi
Possono essere memorizzate in un unico blocco di celle di memoria
Organizzazione con indirizzi consecutivi: se assumiamo che ogni elemento della lista
nella memoria
non sia pi` lungo di n caratteri, possiamo dividere il blocco di celle in
u
Puntatori
sotto-blocchi, ognuno contenente n celle
Strutture statiche
e dinamiche
Memorizzazione
Questo metodo va bene nel caso di liste statiche, in cui compare un
delle strutture numero fisso di elementi. Rimuovere un elemento provocherebbe
Array
Liste infatti la creazione di un buco nella lista, mentre aggiungere un
Pile e code
Alberi binari elemento richiederebbe di spostare la lista in una porzione di memoria
Creazione di tipi in grado di contenerla tutta
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 18 / 35
20. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Pile Per le liste dinamiche bisogna agire diversamente:
Code
Alberi ogni elemento della lista viene memorizzato in un’area della
Organizzazione
nella memoria
memoria
Puntatori le varie celle di memoria vengono collegate tramite puntatori
Strutture statiche
e dinamiche
Se ogni elemento della lista ` formato da n caratteri, lo spazio
e
Memorizzazione
delle strutture richiesto per memorizzali consiste in n + 1 celle di memoria: n celle
Array
Liste
per l’elemento e una cella per il puntatore dell’elemento successivo
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 19 / 35
21. Strutture dati
Arianna Guidolin
Strutture Ogni lista ha una testa e una coda: un puntatore particolare indica la
Array
Liste cella di memoria che contiene l’elemento in testa alla lista, mentre
Pile
Code all’ultimo elemento si associa un puntatore NULL, che indica che non
Alberi
ci sono termini successivi nella lista.
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 20 / 35
22. Strutture dati
Arianna Guidolin
Strutture Ogni lista ha una testa e una coda: un puntatore particolare indica la
Array
Liste cella di memoria che contiene l’elemento in testa alla lista, mentre
Pile
Code all’ultimo elemento si associa un puntatore NULL, che indica che non
Alberi
ci sono termini successivi nella lista.
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 20 / 35
23. Strutture dati
Arianna Guidolin
Strutture In questo modo le operazioni di inserimento ed eliminazione di
Array
Liste
elementi si fanno unicamente con i puntatori
Pile
Code
Alberi
Per rimuovere un elemento basta modificare il puntatore precedente,
Organizzazione
facendogli indicare l’elemento successivo a quello che si vuole
nella memoria
eliminare
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 21 / 35
24. Strutture dati
Arianna Guidolin
Strutture In questo modo le operazioni di inserimento ed eliminazione di
Array
Liste
elementi si fanno unicamente con i puntatori
Pile
Code
Alberi
Per rimuovere un elemento basta modificare il puntatore precedente,
Organizzazione
facendogli indicare l’elemento successivo a quello che si vuole
nella memoria
eliminare
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 21 / 35
25. Strutture dati
Arianna Guidolin
Strutture In questo modo le operazioni di inserimento ed eliminazione di
Array
Liste
elementi si fanno unicamente con i puntatori
Pile
Code
Alberi
Per rimuovere un elemento basta modificare il puntatore precedente,
Organizzazione
facendogli indicare l’elemento successivo a quello che si vuole
nella memoria
eliminare
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 21 / 35
26. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Per aggiungere un elemento, dopo aver trovato lo spazio di memoria
Pile
Code
adatto per contenerlo, bisogna modificare due puntatori: quello
Alberi dell’elemento precedente e quello del nuovo elemento
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 22 / 35
27. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Per aggiungere un elemento, dopo aver trovato lo spazio di memoria
Pile
Code
adatto per contenerlo, bisogna modificare due puntatori: quello
Alberi dell’elemento precedente e quello del nuovo elemento
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 22 / 35
28. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Per aggiungere un elemento, dopo aver trovato lo spazio di memoria
Pile
Code
adatto per contenerlo, bisogna modificare due puntatori: quello
Alberi dell’elemento precedente e quello del nuovo elemento
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 22 / 35
29. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Pile
Pile
Code
Alberi
Organizzazione
Una delle estremit` del blocco di memoria in cui memorizzare la pila
a
nella memoria viene utilizzata come base (cella in cui viene memorizzato il primo
Puntatori
elemento). Gli elementi da inserire vengono posti successivamente
Strutture statiche
e dinamiche andando in direzione dell’altra estremit`a
Memorizzazione
delle strutture Quello che cambia quando si aggiungono o rimuovono elementi da
Array
Liste
una pila ` la posizione della testa: un puntatore contiene quindi
e
Pile e code
Alberi binari
l’indirizzo della testa della pila
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 23 / 35
30. Strutture dati
Arianna Guidolin
Per aggiungere un elemento, il puntatore viene modificato ad indicare
Strutture
Array
la posizione immediatamente oltre la testa e quindi in questa
Liste posizione si va ad inserire il nuovo elemento
Pile
Code
Alberi Per eliminare un elemento basta modificare il puntatore in modo che
Organizzazione
nella memoria
punti all’elemento precedente
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 24 / 35
31. Strutture dati
Arianna Guidolin
Code
Strutture
Array
Liste
Poich´ gli elementi vengono inseriti dal fondo e tolti dalla testa,
e
Pile servono due puntatori alle due estremit`a
Code
Alberi
Organizzazione
Quando la coda ` vuota, entrambi i puntatori indicano la stessa
e
nella memoria posizione
Puntatori
Strutture statiche Per inserire un elemento, si cambia la posizione del puntatore alla
e dinamiche
coda
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 25 / 35
32. Strutture dati
Arianna Guidolin
Strutture
Array
Quando si elimina un elemento, quello che cambia ` il puntatore alla
e
Liste testa
Pile
Code
Alberi
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari Con le operazioni di aggiunta ed eliminazione dei termini, la coda
Creazione di tipi “scorre”nella memoria
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 26 / 35
33. Strutture dati
Arianna Guidolin Per mantenere sempre i termini all’interno dello stesso blocco di
Strutture memoria, quando il puntatore alla coda arriva ad indicare l’estremit`
a
Array
Liste
del blocco di memoria, i nuovi termini da aggiungere vengono posti
Pile all’altra estremit`. Otteniamo una struttura circolare
a
Code
Alberi
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 27 / 35
34. Strutture dati
Arianna Guidolin
Strutture
Array
Alberi binari
Liste
Pile
Code
Alberi
Un albero binario ` un albero in cui ogni nodo ha al massimo due figli.
e
Organizzazione
nella memoria Per memorizzare una struttura di questo tipo possiamo usare i
Puntatori puntatori. Ogni nodo dell’albero consiste di tre componenti
Strutture statiche
e dinamiche il dato
Memorizzazione
delle strutture
un puntatore al primo figlio (a sinistra nel grafico dell’albero)
Array
Liste
un puntatore al secondo figlio (a destra nel grafico dell’albero)
Pile e code
Alberi binari Quindi ogni nodo deve essere pensato come un blocco continuo di
Creazione di tipi
di dati
celle di memoria
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 28 / 35
35. Strutture dati
Ogni puntatore deve puntare o ad un figlio del nodo a cui ` associato
e
Arianna Guidolin
oppure deve avere valore NULL, che significa che non ci sono nodi
Strutture
Array
successivi in quella direzione
Liste
Pile Come per le liste, uno speciale puntatore indica qual ` l’elemento
e
Code
Alberi iniziale dell’albero, cio` la radice
e
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 29 / 35
36. Strutture dati
Arianna Guidolin
Un altro modo per memorizzare alberi binari pu` essere quello di
o
considerare un unico blocco di memoria in cui vengono messi in
Strutture
Array
successione un nodo, il figlio sinistro, il figlio destro e cos` via: i figli
ı
Liste
Pile
del nodo in posizione n sono in posizione 2n (sinistro) e 2n + 1
Code (destro)
Alberi
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 30 / 35
37. Strutture dati
Arianna Guidolin
In questo modo si trovano facilmente genitori, figli o fratelli di un
Strutture
Array
nodo, ma nel caso di alberi sbilanciati oppure con tanti buchi, restano
Liste inutilizzate molte celle di memoria
Pile
Code
Alberi
Organizzazione
nella memoria
Puntatori
Strutture statiche
e dinamiche
Memorizzazione
delle strutture
Array
Liste
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 31 / 35
38. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Pile I linguaggi di programmazione mettono a disposizione dei tipi di dati
Code
Alberi primitivi, come ad esempio gli interi e i reali
Organizzazione
nella memoria Ci sono anche dei modi in cui creare dei tipi di dati personalizzati, a
Puntatori seconda delle proprie esigenze
Strutture statiche
e dinamiche
Supponiamo di dover gestire molte variabili contemporaneamente,
Memorizzazione
delle strutture che hanno tutte la stessa struttura, per esempio vogliamo catalogare
Array
Liste
dei libri indicando autore, anno di pubblicazione e genere letterario
Pile e code
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 32 / 35
39. Strutture dati
Arianna Guidolin
Strutture
Array
Liste Invece di definire ogni volta una variabile con la struttura desiderata,
Pile
Code si pu` definire direttamente un nuovo tipo di dato con la nuova
o
Alberi
struttura che si intende utilizzare: definiamo il nuovo tipo di dato
Organizzazione
nella memoria Libro:
Puntatori
define type Libro {
Strutture statiche
e dinamiche char Autore;
Memorizzazione
delle strutture
int Anno;
Array char Genere;
Liste
Pile e code }
Alberi binari
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 33 / 35
40. Strutture dati
Arianna Guidolin
Strutture
Array
Liste
Successivamente questo nuovo tipo di dato viene utilizzato come se
Pile fosse un tipo primitivo: come per una variabile intera dichiariamo
Code
Alberi
Organizzazione
int a;
nella memoria
Puntatori per un dato del nuovo tipo possiamo dichiarare
Strutture statiche
e dinamiche Libro Amleto;
Memorizzazione
delle strutture
Array
Quindi la variabile Amleto fa riferimento ad una struttura contenente
Liste autore, anno e genere del libro e possiamo poi andare ad assegnare le
Pile e code
Alberi binari caratteristiche
Creazione di tipi
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 34 / 35
41. Strutture dati
Arianna Guidolin
Strutture
Array
Un tipo di dato completo ` costituito da:
e
Liste
Pile un metodo di memorizzazione dei dati
Code
Alberi un insieme di operazioni
Organizzazione
nella memoria Nella creazione di un nuovo tipo di dato abbiamo solo descritto come
Puntatori si possa definire un metodo di memorizzazione di alcuni dati entro
Strutture statiche
e dinamiche
una certa struttura, ma non abbiamo posto condizioni per poter fare
Memorizzazione
operazioni
delle strutture
Array Per aggiungere procedure sui nuovi tipi di dati, bisogna definirle
Liste
Pile e code all’interno della definizione del tipo stesso. I tipi definiti in cui
Alberi binari
Creazione di tipi
compaiono anche operazioni vengono chiamati tipi di dati astratti
di dati
Arianna Guidolin (Universit` degli Studi di Trento)
a Strutture dati 4 maggio 2012 35 / 35