Bra, bra datastrukturer
Miscellanea / / December 05, 2023
Denna kurs - ytterligare ett viktigt steg i din utveckling som en kompetent IT-specialist inom programmeringsområdet. När du har lärt dig de grundläggande funktionerna i språket, dess objektorienterade komponent, är nästa logiska steg studie av typiska, ofta använda datastrukturer, kunskap om deras styrkor och svagheter för effektiv användning i deras projekt.
Alla mer eller mindre tillförlitliga program använder åtminstone en enkel datastruktur, till exempel arrayer. Och i mer komplexa projekt finns det alltid mer komplexa som länkade listor, hashtabeller, uppsättningar, associativa arrayer och så vidare. Du måste veta allt detta så att dina program blir så snabbt som möjligt och samtidigt använda enhetens minne sparsamt. Dessutom blir de nästan alltid tillfrågade under anställningsintervjuer för positionen som programmerare frågor om datastrukturer och metoder för att bedöma komplexiteten hos algoritmer, vanligtvis ur ett "big O"-perspektiv (Big O). Alla dessa viktiga ämnen ingår i denna kurs. Att slutföra det gör att du inte bara kan skriva algoritmer mer självsäkert, utan också bli mer framgångsrik i intervjuer för framtida anställning.
Lära sig att uppskatta beräkningskomplexiteten hos algoritmer
1. Introduktion till Big O
2. Big O med logaritmisk och faktoriell komplexitet
De enklaste datastrukturerna
1. Statisk array
2. Statisk array i C++
3. Dynamisk array
4. Dynamisk array i Python
5. Dynamisk array i C++
Länkade listor
1. Enkelt länkad lista
2. Enkellänkad lista i C++
3. Dubbelt länkad lista
4. Dubbellänkad lista i C++ från början
5. Listklass för en dubbellänkad lista över C++ STL-biblioteket
Köer och stack
1. FIFO- och LIFO-köer
2. collections.deque-kö i Python
3. Ködeque-klass för C++ STL-biblioteket
4. Stack
5. Implementering av en stack i Python och C++
Träd och uppsättningar
1. Binära träd
2. Metoder för att korsa och ta bort hörn i ett binärt träd
3. Binärt träd i Python
4. Uppsättningar. Ställ in operationer
5. Uppsättningar och multiuppsättningar i C++
6. STL-bibliotekskartbehållare i C++
7. Prefix (laddat, försök) träd. Associativa arrayer
Hash tabeller
1. Hash tabeller
2. Universal Hashing
3. Öppen adresseringsmetod. Dubbel hashing
4. Hash-tabeller i Python och C++