Kezdőoldal » Számítástechnika » Programozás » A pszeudokódot szöveggel...

A pszeudokódot szöveggel megfogalmazva le tudnátok írni nekem?

Figyelt kérdés

[link]


Ez a kód kellene lépésekre lebontva ,hogy itt mi mit csinál, mi mit jelent. Tud valaki benne segíteni?



2022. jan. 3. 19:26
 1/1 anonim ***** válasza:
100%

Nyugi, ez csak egy tipikus iskolapéldája lenne annak, hogy hogyan ne írj le egy algoritmust pszeudokóddal. Nincs definiálva, hogy mit csinál az Elem[mutató], a 8. sorban az A változó nincs deklarálva, a Lefoglal(mutató) is csinálhat bármit... Nem beszélve arról, hogy ahhoz, hogy egy tömböt bináris keresőfává alakítsak, a tömbön kívül miért kell még plusz 3 paraméterrel foglalkoznia a user code-nak...


Na de a lényeg az, hogy a bináris keresőfa abból áll, hogy egy csomópontjában van egy érték, és a bal oldali részfája az attól kisebb értékeket, míg a jobb oldali részfája az attól nagyobb értékeket tartalmazza.


Ez az algoritmus elméletileg azt csinálná, hogy beadsz neki egy növekvő sorrendbe rendezett tömböt, amely egész számokat tartalmaz, és csinál belőle neked egy szép bináris keresőfát. Pluszban tudnia kell két indexet, E és U, amely kijelöli a (rész) tömb első és utolsó elemét, illetve egy P mutatót, amely azt a részfát hivatott reprezentálni, amit éppen most építünk fel.


Vegyük ezt a bemenetet (tegyük fel, hogy nulláról indul az indexelés, mint bármely más programozási nyelvben):

a = [ 1, 2, 3, 4, 5, 6, 7 ]

E = 0

U = 6

P = (valami memóriacím, ahová szeretnénk a bináris fánkat tenni)


Az algoritmus veszi a tömb "középső" elemét ( K = (E+U)/2 = 3 ), azaz a "4"-et. Csinál neki egy csomópontot:

(4)

|- Bal:

|- Jobb:


Most az algoritmus meghívja önmagát (ahhoz, hogy megtudd, mit jelent a rekurzió, először meg kell értened, hogy mi az a rekurzió), és felépíti a jobb és a bal oldali részfát:

(4)

|- Bal:

| (2)

| |- Bal:

| |- Jobb:

|- Jobb:

| (6)

| |- Bal:

| |- Jobb:


A (2) esetében ezek voltak a paraméterek értékei:

a = [ 1, 2, 3, 4, 5, 6, 7 ]

E = 0

U = 2

P = a (4)-es csomópont bal oldali részfájára mutató pointer


A (6) esetében pedig:

a = [ 1, 2, 3, 4, 5, 6, 7 ]

E = 4

U = 6

P = a (4)-es csomópont jobb oldali részfájára mutató pointer


És így tovább.

2022. jan. 3. 21:46
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!