Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 3 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.10.10
Prihlásený: 28.10.12
Príspevky: 41
Témy: 9
Príspevok NapísalOffline : 25.03.2011 0:37

Zdravim, mam kod:

Kód:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <time.h>
using namespace std;

// Trieda Item bude predstavovat jeden prvok zoznamu.
class Item {
public:
   // Hodnota prvku
   int value;
   // Smernik na dalsi prvok
   Item* next;

   // Konstruktor s 2 parametrami (ktore maju defaultne hodnoty)
   Item(int value = 0, Item* next = NULL) {

      this->value = value;
      this->next = next;
   }

   // Clenska funkcia = metoda triedy. Vypise hodnotu prvku na obrazovku.
   void print() {
      cout << value;
   }
};

// Trieda List predstavuje zretazeny zoznam.

class List {

public:

       // Smernik na prvy prvok. Ak je NULL, znamena to, ze mame prazdny zoznam.

       Item* first;

       List() {
          first = NULL;
        }

       List(int size, int min, int max){  //konstruktor
           first = NULL;
           srand(time(NULL));
           for(int i = 0; i < size; i++){
           
                   push_front(min + (rand() % (max-min+1)));
           }
       }

       ~List(){ // destruktor
            Item* current = first, *temp;
           
            while (current != NULL) {
               
                temp = current->next;
                delete current;
               
                current = temp;
            }
           
            this->first = NULL;
        }


       int size(){ //zistuje pocet prvkov zoznamu
           int i = 0;
           Item* current = first;
           
           while(current != NULL){
                         i++;
                         current = current->next;             
           }
           return i;
           
       }


       Item* merge(Item* first, Item* second){ //spaja dva utriedene zoznamy
              Item* third;
              Item* last;
               
             if(first->value >= second->value){
                     third=second;
                     second=second->next;
                     last=third;
             }
             else{
                 third=first;
                 first=first->next;
                 last=third;
             }
                     
             while(second != NULL && first != NULL){
                    if(first->value > second->value){
                             last->next=second;
                             second=second->next;
                             last=last->next;
                    }
                    else{
                         last->next=first;
                         first=first->next;
                         last=last->next;
                    }     
             }
             
             while(first == NULL && second != NULL){
                         last->next=second;
                         second=second->next;
                         last=last->next;
             }
                         
             while(second == NULL && first != NULL){
                          last->next=first;
                          first=first->next;
                          last=last->next;
             }
             
             return third;
             
       }
       
       Item* mergeSort(Item* prv, int velkost){
       
        Item* second = prv;
        Item* diss = prv;
        int polka = velkost / 2;

        if(velkost == 1 )
           return prv;

        for(int i=1; i <= polka; i++){
                 diss = second;
                 second=second->next;
                 }         
        diss->next = NULL;

        return (merge(mergeSort(prv, polka), mergeSort(second, polka)));
        }
       
       void sort(){

       int velkost = size();
       this->first = mergeSort(first, velkost);     
           
       }

};


Hacik je v tom, ze mi to sorti len v pripade, ze zretazeny zoznam obsahuje pocet prvkov rovny mocnine 2 - 2, 4, 8... inak niektore prvky jednoduche "zabudne" a zaradi ich inde, vie mi niekto pomoct prosim?


Offline

Užívateľ
Užívateľ
Zadrhel v mergesorte v zretazenom zozname v triede v C++

Registrovaný: 16.08.09
Prihlásený: 07.03.14
Príspevky: 186
Témy: 16
Bydlisko: Levice
Príspevok NapísalOffline : 25.03.2011 13:19

Neštudoval som tvoj kód.
Ak to to pomôže, skús si pozrieť moju verziu:
http://codepad.org/CUEziIR0







_________________
"Najlepším spôsobom, ako sa na budúcnosť pripraviť, je vymyslieť si ju." - John Sculley
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.10.10
Prihlásený: 28.10.12
Príspevky: 41
Témy: 9
Príspevok Napísal autor témyOffline : 25.03.2011 14:49

Dakujem, ale toto mi nepomoze, potrebujem to na triedach v C++ a v tomto mam len jednu malu chybu pravdepodobne v deleni 2 v metode mergeSort, len ju neviem najst a opravit :(


Odpovedať na tému [ Príspevkov: 3 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Dynamicke pole v Triede C++

v Assembler, C, C++, Pascal, Java

1

2001

19.11.2008 14:51

Dark_Raven Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C- Vyčistenie jednej struktury v spajanom zozname

v Assembler, C, C++, Pascal, Java

7

353

08.12.2013 22:16

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Menší zádrhel...

v Assembler, C, C++, Pascal, Java

1

301

26.10.2012 19:02

faraon Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dokumentacia k phpbb template triede

v Redakčné systémy

4

648

28.06.2009 2:57

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. I/K: GPU v triede RTX 3070

v Kúpim

0

457

08.01.2023 20:17

jojinkho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako z JSP zavolat metodu v triede

v Assembler, C, C++, Pascal, Java

6

484

16.04.2008 17:05

m@-nX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pozadie vo vnorenom zozname

v HTML, XHTML, XML, CSS

2

415

13.04.2011 17:50

M4rek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problém v zozname programov

v Operačné systémy Microsoft

5

371

03.11.2010 19:08

jkphoenix Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. thickbox v ul zozname

v JavaScript, VBScript, Ajax

0

295

21.02.2010 13:22

senty Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s menu v zozname

v HTML, XHTML, XML, CSS

8

466

17.02.2008 19:58

Creation Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Taktovanie Celerona Tualatin 1.0a @ 1,5 a jeden zádrhel

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Biosy a ladenie výkonu

47

2790

29.05.2007 11:29

Mir Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmena písmena disku (nie je v zozname)

v Operačné systémy Microsoft

3

297

17.02.2013 2:40

S1anley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako pridať vlastnosti ovládacích prvkov, ktoré sú vytvorené v triede ASP.NET?

v Technológia .NET

1

522

20.05.2015 11:49

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Excel 2010 - obsah zoznamu podmieneny volbou v prvom zozname

v Ostatné programy

1

567

14.03.2014 12:55

jtbs Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ASUS Eee PC X101 - pri inštalácii Windowsu nie sú na zozname žiadne pevné disky

v Notebooky a netbooky

2

404

07.12.2014 17:57

KeNNi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Mám sa učiť C ++/objective C/ C#?

v Assembler, C, C++, Pascal, Java

5

722

08.07.2014 20:40

XOLOO Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra