Algorytmy i. Wykład 3: Stosy, kolejki i listy. Dr inż. Paweł Kasprowski. FIFO First In First Out (kolejka) LIFO Last In First Out (stos)
|
|
- Patryk Domański
- 9 lat temu
- Przeglądów:
Transkrypt
1 Algorytmy i struktury danych Wykład 3: Stosy, kolejki i listy Dr inż. Paweł Kasprowski pawel@kasprowski.pl Kolejki FIFO First In First Out (kolejka) LIFO Last In First Out (stos) Stos (stack) Dostęp jedynie do wierzchołka stosu (elementu, który leży na szczycie) Metody: push() wstaw na stos pop() pobierz ze stosu Ograniczenie dostępu do elementów ułatwia użytkowanie stosu Stos może być przechowywany w dowolnej strukturze (na razie przykład z tablicą) 1
2 Wstawianie elementu public void push(int wartosc) { tablica[nelem]=wartosc; nelem++; Kod identyczny jak metody wstaw() W rzeczywistości stos nie musi być implementowany jako tablica! Pobieranie elementu public int pop() { nelem--; return tablica[nelem]; Zawsze pobiera ostatni element (ostatnio włożony na stos) i "zwalnia" miejsce Wykorzystanie stosu Obracanie słów Sprawdzanie nawiasów Obliczanie wyrażeń algebraicznych 2
3 Klasa Stack class Stack { char[ ] tablica; int nelem; public void push(char h wartosc) { tablica[nelem]=wartosc; nelem++; public char pop() { nelem--; return tablica[nelem]; Klasa StackMain static public void main(string[] args) { System.out.println("Podaj tekst:"); String txt = getstring(); String txt2 = reverse(txt); System.out.println("Przed obrotem: "+txt); System.out.println("Po obrocie: "+txt2); Funkcja getstring public static String getstring() throws IOException { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s = br.readline(); return s; Pobiera tekst ze standardowego wejścia Charakterystyczna dla Javy nie będziemy jej analizować, tylko używać 3
4 Funkcja reverse public static String reverse(string txt) { Stack stos = new Stack(txt.length()); // stworzenie stosu for(int i=0;i<txt.length();i++) stos.push(txt.charat(i)); t h // wrzucenie kolejnych liter String txt2 = ""; // zmienna pomocnicza while(stos.size()>0) txt2+=stos.pop();// ściągnięcie liter (kolejność odwrotna) return txt2; StackMain.java Sprawdzanie nawiasów Trzy rodzaje nawiasów: okrągłe ( ) klamrowe { kwadratowe [ ] Wprowadzony tekst powinien zawierać znaki otwarcia i zamknięcia wszystkich nawiasów Nawiasy są zawsze zagnieżdżone ( { ( ) ) OK ( { ) źle Oprócz nawiasów mogą występować dowolne inne znaki Algorytm Przeglądaj wprowadzony tekst Jeśli nawias otwierający wrzuć na stos Jeśli nawias zamykający ściągnij nawias otwierający ze stosu jeśli nawiasy nie odpowiadają sobie lub stos pusty zakończ zgłaszając błąd Jeśli inny znak pomiń Jeśli koniec ciągu zakończ zgłaszając poprawność 4
5 Implementacja for(int i=0;i<txt.length();i++) { // dla kolejnych znaków char znak = txt.charat(i); if(znak=='(' znak=='[' znak=='{') // jeśli nawias otwierający stos.push(znak); // wrzuć na stos if(znak==')' znak==']' znak=='') // jeśli nawias zamykający if(stos.size()==0) size()==0) // stos pusty - błąd System.out.println("Błąd na pozycji "+i); else { char x = stos.pop(); if( (x=='{' && znak!='') (x=='[' && znak!=']') (x=='(' && znak!=')') ) // na stosie inny nawias - błąd System.out.println("Błąd na pozycji "+i); Funkcja check public static void check(string txt) { Stack stos = new Stack(txt.length()); for(int i=0;i<txt.length();i++) {...treść z poprzedniego slajdu... if(stos.size()>0) System.out.println("Błąd: Brak nawiasu zamykającego!"); Kolejka FIFO First In First Out Kolejka ma zawsze początek i koniec Wstawiamy elementy na koniec P bi l k Pobieramy elementy z początku Zawsze przechowywane wskaźnik na początek (pierwszy element w kolejce) wskaźnik na koniec (ostatnio dodany element) liczba elementów 5
6 Definicja klasy Kolejka (Queue) class Queue { int[ ] tablica; int nelem; int front; // początek kolejki int rear; // koniec kolejki public Queue(int wielkosc) { tablica = new int[wielkosc]; nelem = 0; front = 0; rear = -1; public void insert(int wartosc); public int remove(); front rear Obsługa kolejki public void insert(int wartosc) { rear++; // przesuń wskaźnik końca tablica[rear]=wartosc; // wstaw nowy element nelem++; // zwiększ długość kolejki public int remove() { int wartosc = tablica[front]; // zapamiętaj wartość z początku front++; // przesuń wskaźnik początku nelem--; // zmniejsz długość kolejki return wartosc; Dla kolejki cyklicznej jest to trochę trudniejsze Funkcja insert (wstaw) public void insert(int wartosc) { rear++; // przesuń wskaźnik if(rear == tablica.length) rear=0; // jeśli wskaźnik na końcu tablicy to przewiń tablica[rear]=wartosc; // wstaw nowy element nelem++; // zwiększ długość kolejki 6
7 Funkcja remove (usuń) public int remove() { int wartosc = tablica[front]; front++; // przesuń wskaźnik początku if(front == tablica.length) // jeśli na końcu to przewiń front = 0; nelem--; // zmniejsz długość kolejki return wartosc; Kolejka priorytetowa Elementy w kolejce są posortowane Funkcja remove() zawsze pobiera największy element (ten o najwyższym priorytecie) Funkcja insert() wstawia element w odpowiednie miejsce w kolejce (tak jak funkcja wstaw dla tablicy uporządkowanej) Zwykle implementuje się je strukturach innych niż tablice (np. w kopcach) Obliczanie wartości wyrażenia Dwa etapy: Konwersja wyrażenia arytmetycznego na notację ONP Obliczenie wartości wyrażenia w notacji ONP Obliczenie wartości wyrażenia w notacji ONP W obu przypadkach przyda się stos 7
8 Notacja ONP Odwrotna Notacja Polska (Reverse Polish Notation) Polski wkład w informatykę (Łukasiewicz) Notacja pozwala na zapis wyrażeń arytmetycznych bez użycia nawiasów Budowa notacji nawiasowej <argument> <operator> <argument> (np. a+b) Budowa notacji ONP <argument> <argument> <operator> (np. ab+ ) Konwersja wyrażeń na ONP a+b > ab+ a*b+c > ab*c+ a*(b+c) > abc+* a+b*c+d > abc*+d+ (a+b) * (c+d) > ab+cd+* a+b-c+d > ab+c-d+ a+(b-c)+d > abc-+d+ Co nam daje ONP? Uproszczenie zapisu (brak nawiasów) Możliwość analizy i obliczania wartości wyrażeń po kolei od lewej do prawej Algorytm obliczania wyrażenia: pobierz znak jeśli argument odłóż na stosie jeśli operator pobierz ze stosu dwa argumenty wykonaj działanie wstaw wynik na stos jeśli koniec wyrażenia zdejmij ze stosu wynik 8
9 Implementacja obliczenia for(int i=0;i<txt.length();i++) { char znak = txt.charat(i); if(znak>='0' && znak<='9') stos.push( (int)(znak-'0') ); // argumenty na stos else { // operator przelicz dwa ostatnie argumenty int arg2 = stos.pop(); // pobierz argumenty ze stosu int arg1 = stos.pop(); int wynik = 0; if(znak=='+') wynik = arg1 + arg2; // wykonaj działanie if(znak=='-') wynik = arg1 - arg2; if(znak=='*') wynik = arg1 * arg2; if(znak=='/') wynik = arg1 / arg2; stos.push(wynik); return stos.pop(); // na końcu na stosie jeden element - wynik Przykład 1 Notacja nawiasowa: 4*(8-2)/3+2 = 10 Notacja ONP: 482-*3/2+ Obliczenia: 482 4,8,2, 4,6, * 24,3,/ 8,2,+ 10 Uwaga: jeśli wyniki cząstkowe nie są całkowite będą zaokrąglane! Przykład 2 Notacja nawiasowa: (2+3)*(8+2)/5+7 = 17 Notacja ONP: *5/7+ Obliczenia: 23 2,3,+ 5,8,2,+ 5,10,* 50,5,/ 10,7,+ 17 9
10 Zamiana wyrażenia na ONP Znowu używamy stosu! Tym razem wrzucamy do niego operatory a nie argumenty Algorytm: pobierz znak jeśli argument wypisz na wyjście jeśli nawias otwierający na stos jeśli nawias zamykający zdejmij ze stosu wszystko do nawiasu otwierającego i wypisz na wyjście jeśli operator zdejmij ze stosu i wypisz operatory o wyższym priorytecie aż do nawiasu otwierającego, umieść operator na stosie jeśli koniec wyrażenia wypisz zawartość stosu na wyjście Listy Dr inż. Paweł Kasprowski pawel@kasprowski.pl Listy a tablice Zalety: Nie trzeba z góry definiować wielkości listy Szybsze wstawianie w środek listy S b i Szybsze usuwanie Wady Wolniejsze wyszukiwanie Więcej miejsca w pamięci 10
11 Zasada działania Każdy element listy zawiera wskaźnik na kolejny Wystarczy, ze znamy wskaźnik na pierwszy element dane next dane next dane next Element listy class Element { int dana;... Element next; //adres następnego elementu Element listy class Element { public int dana;... public Element next; //adres następnego elementu public Element(int dana) { this.dana = dana; this.next = null; 11
12 Klasa Lista class Lista { Element head; public Lista() { head = null; public void wstaw(int klucz); public void usun(int klucz); public boolean szukaj(int klucz);... Klasa ArrayMain class ArrayMain { public static void main() { Array tab = new Array(20); for(int i=0; i<10; i++) { tab.wstaw(100*i + 2); tab.pokaztablice(); tab.wstaw(250); if(tab.szukaj(120)) System.out.println("Znaleziono "); Klasa ListaMain class ListaMain { public static void main() { Lista lista = new Lista(); for(int i=0; i<10; i++) { lista.wstaw(100*i + 2); lista.pokazliste(); lista.wstaw(250); if(lista.szukaj(120)) System.out.println("Znaleziono "); 12
13 Metoda wstawpierwszy() public void wstawpierwszy(int klucz) { Element x = new Element(klucz); x.next = head; head = x; Metoda pokazliste() public void pokazliste() { x = head; while(x!=null) { System.out.println("Element: "+x.dana); x = x.next; ListaMain.java Metoda wstaw() public void wstaw (int klucz) { Element elem = new Element(klucz); x = head; hil (! ll) { // jś i d i while(x.next!= null) { // przejście do ostatniego x = x.next; // tutaj x wskazuje na ostatni element x.next = elem; 13
14 Metoda usunpierwszy() public void usunpierwszy() { head = head.next; Uwaga1: W Javie nie trzeba zwalniać pamięci! Uwaga2: Jeśli nie ma na liście elementów to head=null i metoda wygeneruje wyjątek NullPointerException! Metoda usunpierwszy() public void usunpierwszy() { if(head!= null) head = head.next; Zwracanie usuniętego elementu public Element usunpierwszy() { Element x = head; if(head!= null) h d h d head = head.next; return x; 14
15 Zwracanie wartości usuniętego elementu public int usunpierwszy() { int x = head.dana; if(head!= null) head = head.next; return x; Uwaga! Znowu może być NullPointerException Zwracanie wartości usuniętego elementu public int usunpierwszy() { int x = -1; if(head!= null) { x = head.dana; d head = head.next; return x; Metoda usun() dla tablicy public void usun(int klucz) { int i=0; while(i<nelem && tablica[i]!= klucz) // wyszukanie i i 1 i = i + 1; while(i<=nelem-1) { // przesunięcie tablica[i] = tablica[i+1]; i++; 15
16 Metoda usun() dla listy public void usun(int klucz) { Element x = head; while(x!=null && x.dana!= klucz) // wyszukanie x = x.next;... Metoda usun() dla listy public void usun(int klucz) { Element x = head; Element xprev = null; while(x!=null && x.dana!= klucz) { // wyszukanie xprev = x; x = x.next; // tutaj: // x - element do usunięcia, // xprev - element poprzedni Metoda usun() dla listy public void usun(int klucz) { Element x = head; Element xprev = null; while(x!=null && x.dana!= klucz) { // wyszukanie xprev = x; x = x.next; if(x!=null) { // usunięcie elementu z łańcucha xprev.next = x.next; 16
17 Metoda usun() dla listy public void usun(int klucz) { Element x = head; Element xprev = null; while(x!=null && x.dana!= klucz) { // wyszukanie xprev = x; x = x.next; if(x!=null) { // usunięcie elementu z łańcucha xprev.next = x.next; Problem: co jeśli usuwamy pierwszy element? Metoda usun() dla listy public void usun(int klucz) { Element x = head; Element xprev = null; while(x!=null && x.dana!= klucz) { // wyszukanie xprev = x; x = x.next; if(x!=null) { // usunięcie elementu z łańcucha if(xprev!= null) xprev.next = x.next; else // usuwamy pierwszy element head = x.next; Zwracanie usuwanego elementu public Element usun2(int klucz) { Element x = head; Element xprev = null; while(x!=null && x.dana!= klucz) { // wyszukanie xprev = x; x = x.next; if(x!=null) { // usunięcie elementu z łańcucha if(xprev!= null) xprev.next = x.next; else head = x.next; return x; 17
18 Zwracanie wartości usuwanego elementu public int usun2(int klucz) { Element x = head; Element xprev = null; while(x!=null && x.dana!= klucz) { // wyszukanie xprev = x; x = x.next; if(x!=null) { // usunięcie elementu z łańcucha if(xprev!= null) xprev.next = x.next; else head = x.next; return (x!=null)?x.dana:-1; Implementacja stosu Metoda push() wstawienie nowego elementu na szczyt stosu po prostu metoda wstawpierwszy() Metoda pop() usunięcie elementu ze szczytu stosu po prostu metoda usunpierwszy() Z punktu widzenia użytkownika stosu sposób przechowywania danych (tablica czy lista) jest obojętny on używa tylko metod push() i pop() Implementacja kolejki Metoda insert() wstawia element na koniec kolejki po prostu metoda wstaw() Metoda remove() pobiera pierwszy element z kolejki po prostu metoda usunpierwszy() Lista jest tworzona dynamicznie nie ma tu potrzeby "zawijania" jak przy użyciu tablicy 18
19 Kolejka tablica czy lista? Tablica konieczność określenia maksymalnej wielkości stosu/kolejki czas usuwania rzędu O(n) czas wstawiania rzędu O(1) gdy na koniec! Lista większy rozmiar danych (przechowywanie linków) czas usuwania rzędu O(1) czas wstawiania rzędu O(n) konieczność przejścia na koniec listy Ale to można poprawić! Przechowanie końca listy class Lista { Element head; Element tail; public Lista() { head = null; tail = null;... Szybsze wstaw() public void wstaw (int klucz) { Element elem = new Element(klucz); tail.next = elem; tail = elem; 19
20 Poprawka w usunpierwszy() public int usunpierwszy() { int x = -1; if(head!= null) { x = head.dana; d head = head.next; if(head==null) tail=null; return x; Listy dwukierunkowe Oprócz next, także prev Możliwość przechodzenia w obie strony listy Usuwanie i wstawianie robi się bardziej skomplikowane Wyszukiwanie może być łatwiejsze Dziękuję za uwagę Do zobaczenia... materiały dostępne pod adresem: 20
Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Bardziej szczegółowoPodstawy informatyki 2. Podstawy informatyki 2. Wykład nr 2 ( ) Plan wykładu nr 2. Politechnika Białostocka. - Wydział Elektryczny
Wykład nr 2 2/6 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne Rok akademicki 2006/2007 Plan wykładu nr 2 Argumenty funkcji main Dynamiczne struktury danych
Bardziej szczegółowoPodstawy informatyki 2
Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne Rok akademicki 2006/2007 Wykład nr 2 (07.03.2007) Wykład nr 2 2/46 Plan wykładu nr 2 Argumenty funkcji main
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Stosy, kolejki, drzewa Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. VII Jesień 2013 1 / 25 Listy Lista jest uporządkowanym zbiorem elementów. W Pythonie
Bardziej szczegółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Liniowe struktury danych. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład
Bardziej szczegółowoKiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja
1 struktura, kolekcja Kiedy potrzebne Duża liczba danych takiego samego typu tablice a jak nieznana liczba elementów? dane zawierające wartości różnego typu (osoba: pesel, nazwisko, rok urodzenia, pracuje/niepracuje,
Bardziej szczegółowoStruktury danych: stos, kolejka, lista, drzewo
Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja
Bardziej szczegółowoStruktury. Przykład W8_1
Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla
Bardziej szczegółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Podstawowe struktury danych dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 6 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych.
Bardziej szczegółowoWykład 4. Klasa List Kolejki Stosy Słowniki
Wykład 4 Klasa List Kolejki Stosy Słowniki Klasa List Poważną niedogodnością tablic jako kolekcji danych jest fakt, że muszą one mieć stały rozmiar. Programista musi wiedzieć z góry ile miejsca powinien
Bardziej szczegółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Abstrakcyjne struktury danych dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 5 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury
Bardziej szczegółowoOdwrotna Notacja Polska
Odwrotna Notacja Polska Odwrotna Notacja Polska w skrócie ONP) jest sposobem zapisu wyrażeń arytmetycznych. Znak wykonywanej operacji umieszczany jest po operandach, argumentach tzw. zapis postfiksowy).
Bardziej szczegółowoProgramowanie i struktury danych 1 / 44
Programowanie i struktury danych 1 / 44 Lista dwukierunkowa Lista dwukierunkowa to liniowa struktura danych skªadaj ca si z ci gu elementów, z których ka»dy pami ta swojego nast pnika i poprzednika. Operacje
Bardziej szczegółowoWykład 5 Wybrane zagadnienia programowania w C++ (c.d.)
Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.) Kontenery - - wektor vector - - lista list - - kolejka queue - - stos stack Kontener asocjacyjny map 2016-01-08 Bazy danych-1 W5 1 Kontenery W programowaniu
Bardziej szczegółowoLista, Stos, Kolejka, Tablica Asocjacyjna
Lista, Stos, Kolejka, Tablica Asocjacyjna Listy Lista zbiór elementów tego samego typu może dynamicznie zmieniać rozmiar, pozwala na dostęp do poszczególnych elementów Typowo dwie implementacje: tablicowa,
Bardziej szczegółowoMarcin Matusiak i Łukasz Stasiak
Marcin Matusiak i Łukasz Stasiak Lista jest sekwencyjną strukturą danych, która składa się z ciągu elementów tego samego typu. Dostęp do elementów listy jest sekwencyjny tzn. z danego elementu listy możemy
Bardziej szczegółowodr inż. Paweł Myszkowski Wykład nr 11 ( )
dr inż. Paweł Myszkowski Politechnika Białostocka Wydział Elektryczny Elektronika i Telekomunikacja, semestr II, studia stacjonarne I stopnia Rok akademicki 2015/2016 Wykład nr 11 (11.05.2016) Plan prezentacji:
Bardziej szczegółowoDynamiczne struktury danych
Dynamiczne struktury danych 391 Dynamiczne struktury danych Przez dynamiczne struktury danych rozumiemy proste i złożone struktury danych, którym pamięć jest przydzielana i zwalniana na żądanie w trakcie
Bardziej szczegółowoAlgorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski
Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny
Bardziej szczegółowoProgramowanie w języku Java. Kolekcje
Programowanie w języku Java Kolekcje Definicja Kolekcja to obiekt, który grupuje elementy danych (inne obiekty) i pozwala traktować je jak jeden zestaw danych, umożliwiając jednocześnie wykonywanie na
Bardziej szczegółowoAlgorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych
Algorytmy i Struktury Danych Wykład IV Sortowania cd. Elementarne struktury danych 1 Co dziś? Dolna granica sortowań Mediany i statystyki pozycyjne Warstwa implementacji Warstwa abstrakcji #tablice #listy
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna
Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy
Bardziej szczegółowoMateriał uzupełniający do ćwiczen z przedmiotu: Programowanie w C ++ - ćwiczenia na wskaźnikach
Materiał uzupełniający do ćwiczen z przedmiotu: Programowanie w C ++ - ćwiczenia na wskaźnikach 27 kwietnia 2012 Wiedząc, że deklarowanie typu rekordowego w języku C/ C++ wygląda następująco: struct element
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych zajęć
Bardziej szczegółowoProgramowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]
Programowanie w Javie Lista nr 1 1. Jak uruchomić pierwszy program w Javie? Przykład przy wykorzystaniu NetBeans: File->New Project Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]
Bardziej szczegółowoWykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Bardziej szczegółowoPodstawowe struktury danych
Podstawowe struktury danych 1) Listy Lista to skończony ciąg elementów: q=[x 1, x 2,..., x n ]. Skrajne elementy x 1 i x n nazywamy końcami listy, a wielkość q = n długością (rozmiarem) listy. Szczególnym
Bardziej szczegółowoPętle while, for, do while, instrukcje break, continue, switch 1. Pętle
Pętle while, for, while, instrukcje break, continue, switch 1. Pętle Przykład 1 - Pętla while public class lab4_3 public static void main(string[] args) char ch = 'a'; String s, wynik=""; while ( ch!=
Bardziej szczegółowoListy, kolejki, stosy
Listy, kolejki, stosy abc Lista O Struktura danych składa się z węzłów, gdzie mamy informacje (dane) i wskaźniki do następnych węzłów. Zajmuje tyle miejsca w pamięci ile mamy węzłów O Gdzie można wykorzystać:
Bardziej szczegółowoMetody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Bardziej szczegółowoLaboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Bardziej szczegółowoNotacja RPN. 28 kwietnia wyliczanie i transformacja wyrażeń. Opis został przygotowany przez: Bogdana Kreczmera.
1 wyliczanie i transformacja wyrażeń (wersja skrócona) Opis został przygotowany przez: Bogdana Kreczmera 28 kwietnia 2002 Strona 1 z 68 Zakład Podstaw Cybernetyki i Robotyki - trochę historii...............
Bardziej szczegółowoDynamiczny przydział pamięci (język C) Dynamiczne struktury danych. Sortowanie. Klasyfikacja algorytmów sortowania. Algorytmy sortowania
Rok akademicki 2010/2011, Wykład nr 4 2/50 Plan wykładu nr 4 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2010/2011
Bardziej szczegółowoINFORMATYKA. Podstawy programowania w języku C. (Wykład) Copyright (C) 2005 by Sergiusz Sienkowski IME Zielona Góra
INFORMATYKA Podstawy programowania w języku C (Wykład) Copyright (C) 2005 by Sergiusz Sienkowski IME Zielona Góra INFORMATYKA Temat: Struktury dynamiczne Wykład 7 Struktury dynamiczne lista jednokierunkowa,
Bardziej szczegółowoSzablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoE S - uniwersum struktury stosu
Temat: Struktura stosu i kolejki Struktura danych to system relacyjny r I r i i I U,, gdzie U to uniwersum systemu, a i i - zbiór relacji (operacji na strukturze danych). Uniwersum systemu to zbiór typów
Bardziej szczegółowoPodstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
Bardziej szczegółowoStruktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych:
Struktura danych Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych: rekord tablica lista stos kolejka drzewo i jego odmiany (np. drzewo
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
Bardziej szczegółowoObliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303
Wykład 9 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 stos i operacje na stosie odwrotna notacja polska języki oparte na ONP przykłady programów J. Cichoń, P. Kobylański Wstęp
Bardziej szczegółowoWstęp do programowania
Wieczorowe Studia Licencjackie Wrocław, 9.01.2007 Wstęp do programowania Wykład nr 13 Listy usuwanie elementów Poniżej prezentujemy funkcję, która usuwa element o podanej wartości pola wiek z nieuporządkowanej
Bardziej szczegółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Bardziej szczegółowoWskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to
Bardziej szczegółowoJęzyk JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język
Bardziej szczegółowoAlgorytmy i złożoności. Wykład 3. Listy jednokierunkowe
Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie
Bardziej szczegółowoINFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne Sortowanie Dane wejściowe : trzy liczby w dowolnym porządku Dane wyjściowe: trzy liczby
Bardziej szczegółowoProgramowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35
Programowanie w C++ Wykład 3 Katarzyna Grzelak 12 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35 Zakres ważności obiektów K.Grzelak (Wykład 1) Programowanie w C++ 2 / 35 Zakres ważności obiektów
Bardziej szczegółowoJęzyki i metody programowania Java INF302W Wykład 2 (część 1)
Języki i metody programowania Java INF302W Wykład 2 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 2, część 1 1 Struktura wykładu 1. Identyfikacja
Bardziej szczegółowoStruktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych:
Struktura danych Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych: rekord tablica lista stos kolejka drzewo i jego odmiany (np. drzewo
Bardziej szczegółowoAbstrakcyjne struktury danych w praktyce
Abstrakcyjne struktury danych w praktyce Wykład 13 7.4 notacja polska A.Szepietowski Matematyka dyskretna rozdział.8 stos kompilacja rozłączna szablony funkcji Przypomnienie Drzewo binarne wyrażenia arytmetycznego
Bardziej szczegółowoWykład 4. Tablice. Pliki
Informatyka I Wykład 4. Tablice. Pliki Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Tablice Tablica uporządkowany zbiór elementów określonego typu Każdy element tablicy posiada
Bardziej szczegółowoJęzyki i metody programowania Java INF302W Wykład 3 (część 1)
Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,
Bardziej szczegółowoTworzenie aplikacji w języku Java
Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009
Bardziej szczegółowo2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
Bardziej szczegółowoProgramowanie i struktury danych
Programowanie i struktury danych 1 / 19 Dynamiczne struktury danych Dynamiczną strukturą danych nazywamy taka strukturę danych, której rozmiar, a więc liczba przechowywanych w niej danych, może się dowolnie
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Bardziej szczegółowoInformatyka 2. Wykład nr 5 ( ) Plan wykładu nr 5. Politechnika Białostocka. - Wydział Elektryczny. Odwrotna notacja polska.
Rok akademicki 008/009, Wykład nr 5 /6 Plan wykładu nr 5 Informatyka Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia (zaoczne) Rok akademicki
Bardziej szczegółowoInformatyka 2. Wykład nr 5 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia (zaoczne) Rok akademicki 2008/2009 Wykład nr 5 (22.11.2008) Rok akademicki 2008/2009,
Bardziej szczegółowoWykład 6_1 Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych
Wykład 6_ Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych Abstrakcyjny typ danych Klient korzystający z abstrakcyjnego typu danych: o ma do dyspozycji jedynie
Bardziej szczegółowoCo to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).
Zarządzanie pamięcią Pamięć: stos i sterta Statyczny i dynamiczny przydział pamięci Funkcje ANSI C do zarządzania pamięcią Przykłady: Dynamiczna tablica jednowymiarowa Dynamiczna tablica dwuwymiarowa 154
Bardziej szczegółowoZofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1
PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,
Bardziej szczegółowoZasady programowania Dokumentacja
Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika
Bardziej szczegółowoStos LIFO Last In First Out
Stos LIFO Last In First Out Operacje: push - dodanie elementu na stos pop - usunięcie elementu ze stosu empty - sprawdzenie, czy stos jest pusty size - zwrócenie liczby elementów na stosie value (peek)
Bardziej szczegółowoAlgorytmy i Struktury Danych
Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu
Bardziej szczegółowoWykład 8: Obsługa Wyjątków
Wykład 8: Obsługa Wyjątków Wyjątki Wyjątek to sytuacja nienormalna, która pojawia się w trakcie wykonania programu. W językach bez obsługi wyjątków, błędy są wykrywane i obsługiwane ręcznie, zwykle przez
Bardziej szczegółowoJęzyki i techniki programowania Ćwiczenia 2
Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...
Bardziej szczegółowoWskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17
Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Bardziej szczegółowoWybrane algorytmy tablicowe
Wybrane algorytmy tablicowe Algorytmy i struktury danych Wykład 2. Rok akademicki: 2009/2010 Sortowanie przez wybieranie for (int i = 0; i < liczby.length - 1; i++) k = i; for (int j = i; j < liczby.length;
Bardziej szczegółowoAlgorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)
Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Wprowadzenie Haszowanie jest to pewna technika rozwiązywania ogólnego problemu słownika. Przez problem słownika rozumiemy tutaj takie
Bardziej szczegółowoStruktury Danych i Złożoność Obliczeniowa
Struktury Danych i Złożoność Obliczeniowa Zajęcia 1 Podstawowe struktury danych Tablica Najprostsza metoda przechowywania serii danych, zalety: prostota, wady: musimy wiedzieć, ile elementów chcemy przechowywać
Bardziej szczegółowoJęzyki i Techniki Programowania II. Wykład 7. Współbieżność 1
Języki i Techniki Programowania II Wykład 7 Współbieżność 1 Programy, Procesy, Wątki Program to zestaw instrukcji do wykonania, dane do przetworzenia, mechanizmy sterujące (stos) Proces w komputerze to
Bardziej szczegółowoStos liczb całkowitych
Stos liczb całkowitych class StosInt int* tab; unsigned size ; StosInt(unsigned s=10) tab=new int[size=s];top=0; ~StosInt()delete[] tab; void push(int i)tab[top++]=i; int pop(void) return tab[--top]; int
Bardziej szczegółowoTemat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Bardziej szczegółowoWykład 2: Podstawy Języka
Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście
Bardziej szczegółowoKolekcje - pakiet Java Collections Framework
Programowanie obiektowe Kolekcje - pakiet Java Collections Framework Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Definicja kolekcji
Bardziej szczegółowo- - Ocena wykonaniu zad3. Brak zad3
Indeks Zad1 Zad2 Zad3 Zad4 Zad Ocena 20986 218129 ocena 4 Zadanie składa się z Cw3_2_a oraz Cw3_2_b Brak opcjonalnego wywołania operacji na tablicy. Brak pętli Ocena 2 Brak zad3 Ocena wykonaniu zad3 po
Bardziej szczegółowoKonstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Bardziej szczegółowoPodejście obiektowe. Tablice (1) obiektów
1. Tablice Tablica w Javie jest obiektem. Podejście obiektowe. Tablice (1) obiektów Deklarowanie tablicy String [] nazwy; //równowaŝne deklaracje zmiennej tablicowej String nazwy []; int liczby[]; //zamienna
Bardziej szczegółowoKOLEJKA (QUEUE) (lista fifo first in, first out)
KOLEJKA (QUEUE) (lista fifo first in, first out) Kolejki są listami, których elementy można wstawiać z jednego końca (rear-tył) a usuwać z drugiego (front - przód). Operacje: 1. MAKENULL(Q) czyni kolejkę
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 3: Tworzenie i usuwanie obiektów 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 1 Deklaracje pól klasy class Klasa1 { int i; Klasa2 k = new Klasa2(); char c= x ; byte
Bardziej szczegółowoProgramowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe Klasy i obiekty Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) PO w. V Jesień 2011 1 / 13 Typy danych (w Javie) Typy pierwotne typ wartości
Bardziej szczegółowoJęzyk programowania: Lista instrukcji (IL Instruction List)
Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski 08.12.2009 Norma IEC 1131 Języki tekstowe Języki graficzne
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
Bardziej szczegółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Liniowe struktury danych - Lista uporzadkowana. Wartownicy. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 6 Bożena Woźna-Szcześniak (AJD)
Bardziej szczegółowoPodstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie Krzysztof Banaś Podstawy programowania 1 są sposobem na przechowywanie w ramach pojedynczej zmiennej zestawu zmiennych różnych typów,
Bardziej szczegółowodr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1
Ćwiczenie 1 Uruchamianie programu w Netbeans Uruchom środowisko Netbeans. Stwórz nowy projekt typu Java Application. Nadaj projektowi nazwę HelloWorld (Project Name), zwróć uwagę na folder, w którym zostanie
Bardziej szczegółowoKurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Bardziej szczegółowoDynamiczne struktury danych
Listy Zbiór dynamiczny Zbiór dynamiczny to zbiór wartości pochodzących z pewnego określonego uniwersum, którego zawartość zmienia się w trakcie działania programu. Elementy zbioru dynamicznego musimy co
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Bardziej szczegółowoRealizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski
Realizacja ekstensji klasy Paulina Strzelecka, Tomasz Roszkowski Przechowywanie obiektów (odwolañ do obiektów) w Javie typ wbudowany - tablica zbiór klas kontenerowych Paulina Strzelecka, Tomasz Roszkowski
Bardziej szczegółowoWYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński
WYKŁAD 8 Funkcje i algorytmy rekurencyjne Proste przykłady Programy: c3_1.c..., c3_6.c Tomasz Zieliński METODY REKURENCYJNE (1) - program c3_1 ======================================================================================================
Bardziej szczegółowoKurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Bardziej szczegółowoTeoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 5b: Model danych oparty na listach http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Słowem wstępu Listy należą do najbardziej
Bardziej szczegółowoWykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy
Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element
Bardziej szczegółowoDefiniowanie własnych klas
Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:
Bardziej szczegółowo1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy.
1. Kalkulator czterech działań. Kalkulator czterech działań: +, -, *, \ (bez nawiasów). Wejście: łańcuch znakowy, np. 1+2*3\4-5\2=, -2+4e-1= Liczby mogą być w formacie, np. +1.45, -2, 1e-10. 2. Konwersja
Bardziej szczegółowo