Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <ctime>
- using namespace std;
- //Zadanie 1
- const int N = 10;
- int dane[N];
- int kroki = 0;
- void init1()
- { //inicjalizacja tablicy do zadania 1
- dane[0]=rand()%10;
- for(int i=1; i<N;i++)
- dane[i]=rand()%10 + dane[i-1];
- }
- void drukuj()
- {
- for(int i=0; i<N;i++)
- cout<<dane[i]<< " ";
- cout<<endl;
- }
- int szukaj()
- {
- cout<<"Podaj liczbฤ do wyszukania: ";
- int x;
- cin>>x;
- int lewy = 0;
- int prawy = N-1;
- bool znaleziono = false;
- while(lewy <= prawy && !znaleziono)
- {
- ++kroki;
- int srodek = (lewy+prawy)/2;
- if(dane[srodek] == x)
- {
- znaleziono = true;
- return srodek;
- }
- else
- if(x < dane[srodek])
- prawy = srodek - 1;
- else
- lewy = srodek + 1;
- }
- return -1;
- }
- void zadanie1()
- {
- init1();
- drukuj();
- int wynik = szukaj();
- cout<<"Pozycja liczby (-1 gdy nie ma): "<< wynik<<". Liczba krokow: "<<kroki<<endl;
- }
- //Zadanie 2
- struct element
- {
- char wart;
- element *next, *prev;
- };
- element *head = NULL;
- void dodaj(char z)
- {
- element *n = new element;
- n->wart = z;
- if(head==NULL)
- {
- head = n;
- n->prev = 0;
- n->next = 0;
- }
- else
- {
- if(head->wart > z)
- {
- n->next = head;
- head->prev = n;
- head = n;
- n->prev = 0;
- }
- else
- {
- element *p, *q;
- p = head;
- q = head->next;
- while(q != NULL && q->wart <= z)
- {
- p = q;
- q = q->next;
- }
- if(q == 0)
- n->next = 0;
- else
- {
- n->next = q;
- q->prev = n;
- }
- p->next = n;
- n->prev = p;
- }
- }
- }
- void drukujL()
- {
- element *p = head;
- while(p!=0)
- {
- if(p->next != 0)
- cout<<p->wart<<" <-> ";
- else
- cout<<p->wart;
- p = p->next;
- }
- cout<<endl;
- }
- void zadanie2()
- {
- dodaj('d');
- dodaj('j');
- dodaj('l');
- dodaj('h');
- dodaj('a');
- dodaj('a');
- dodaj('k');
- dodaj('k');
- drukujL();
- }
- int main(){
- zadanie2();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement