Van erős oka, hogy nem tartalmazhat több csomópontra mutató egy node használata több adat struktúra?

szavazat
0

Vegyük például a megbízás dolgozom. Vagyunk, hogy egy bináris keresési fa egy darab egy adathalmazt, majd egy láncolt lista egy másik darabot a készlet. A javasolt módszer a tanár volt:

struct treeNode
{
    data * item;
    treeNode *left, *right;
};

struct listNode
{
    data * item;
    listNode *next, *prev;
};

class collection
{
public:
         ........
}

Amennyiben az adatok egy osztály adatait tartalmazó minden rekord. Természetesen, mint a 'van beállítva, a treeNode nem létezhet a láncolt lista.

Nem lenne sokkal egyszerűbb:

struct node
{
    data * item;
    node *listNext, *listPrev, *treeLeft, *treeRight;
};

akkor azt mondhatjuk:

node * listHead;
node * treeRoot;

és magában foglalja mind behelyezés algoritmusokat az osztályban.

Van valami, amit még hiányzik?

A kérdést 09/03/2011 19:33
a forrás felhasználó
Más nyelveken...                            


3 válasz

szavazat
0

Megteheti, hogy van, de pazarlás memória a plusz mutató. Továbbá, ez a tendencia, hogy több zavaró mix típusú, mint ezt. Jól gondolom, hogy feltételezi az adatok vagy tegye be a listába, vagy tegye be a fát, de nem helyezünk mindkettő? Ott tényleg nem sok oka van mindkettő ugyanazt a szerkezetet, ha azok különböző adattípusok egyébként. Ha behelyez ugyanazokat az adatokat mindkét típusú, akkor esetleg váltani bejárja a fa áthaladó listán, ha már semmi hasznát egy ilyen akció.

Mivel te beillesztése az adatokat mindkét lista, akkor mentse memóriát használja a kompozit node szerkezet. Azt helyezze be a bináris fában, majd helyezze be a hozzárendelt csomópontot a láncolt lista. Akkor nem igazán a végén egy tiszta kapcsolt lista, vagy egy bináris keresési fa, de jó lenne tudni kell áthidalni, mint bármelyik.

Válaszolt 09/03/2011 21:08
a forrás felhasználó

szavazat
0

Tulajdonképpen az adatelemeket kell illeszteni a listákról. A (világi) célja a feladat az, hogy rendezni az adathalmazok két különböző készletben lévő elemek.

Tehát, hogy azt mondta, Nem kellene memóriafelszabadításra? Ötvözi a 2 csomópont végzem 5 mutató, ha hagytam őket szétválasztani azt használni 6. Én is tényleg csak egy csoportját adatok ilyen módon. ha volt 250 adatelemeket nyomon követni, azt egy csoportja 1250 mutatók helyett 2 listák 750. Talán csak félreértés, amit valójában kap kiosztott mutatóval hívásokat.

Válaszolt 09/03/2011 21:59
a forrás felhasználó

szavazat
0

Mi volt a válasz?

Ha az adatok kisebb (hmmm) megabájt, ne aggódj memória-felhasználás. 1 vagy 2 GB jellemző a szokásos számítógépek között.

Mekkora a tárgyakat? 32 karakter? 64k a tömörített multimédiás? Valami nagy?

Hogy ésszerű ez szervezni egy elem mindkét technikát? Ha az adatok valóban ugyanaz, akkor egy 5 mutató szerkezet érdekesnek valaki talál egy csomópontot egy rendelési majd böngésszen kapcsolódó csomópontok a többi rendelés.

Azokat az alkatrészeket, nem rokon, néhány krétát, egy kis sajtot? Ők többdimenziós? személyügyi nyilvántartás? Audio fájlt leírások? Receptek?

Az iskolában, a jó tanár próbál adni élményt közös módszerek és tudományágak. Csakúgy, mint a művészeti osztály, vagy összetételét. Ceruza, pasztell, 5 bekezdés esszé. Tehát a tanár érdemes írhatunk két különböző osztályokba konstruktőrök. Használjon egy struct egy része az adatok, másikat az egyéb adatokat. Vagy ugyanaz. Csak mert.

Az iskolán kívül, az adatok jön egy méret és vannak műveletek kívánt rajta / vele. „Használati esetek” a történeteket arról, hogy az adatokat használják, amit meg kell őrizni, milyen algoritmusokat használnak.

A lényeg az lehet bimodális keresést, 2 pár ortogonális mutatók. Lehet Szakszervezetek, ahol minden egyes tétel asssociated egy listát vagy egy fa, de nem mind ugyanabban az időben. Lehet, hogy egy szélroham a lightwieght részhalmaza, fák és listák, amelyek összehasonlítják és szembe ...

Ha kétségei vannak, „adatstruktúrák + algoritmusok = programok”. De fizet tudni mi pont a tanár próbál tenni, és hogy szeretnénk, hogy csatlakozzanak. (Általában az iskolában, akkor igen.)

Válaszolt 12/04/2011 01:51
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more