Kezdőoldal » Számítástechnika » Programozás » Van-e erre lehetőség (inv....

Van-e erre lehetőség (inv. lengyel logika)?

Figyelt kérdés

Egyértelműsitett matematikai, logikai kifejezéseket (expressions) szeretnék eltárolni, de nem a szokott módon, bináris fában, hanem láncolt listában.

Akik profibbak ezen a téren, azok szerint vajon lehetséges ez?



2022. aug. 19. 15:56
1 2 3 4
 21/40 anonim ***** válasza:
68%

Az 1D tömb NEM láncolt lista.

A láncolt lista lényege, hogy pointerekkel (vagy referenciákkal, olymindegy) vannak láncolva a memoriában külön helyen tárolt elemei, ergo pl simán ki tudsz venni egy elemet a közepéről, de nem tudod indexelni (konstans időben).

Na a tömb, az ennek pont az ellentéte.

Olvasgass még kicsit a témában, mert így nagyon fölöslegesem beszélgetünk (a semmiről).

2022. aug. 19. 20:55
Hasznos számodra ez a válasz?
 22/40 A kérdező kommentje:

Tudod, vannak programnyelvek, amelyekben eleve ismeretlen fogalom a pointer.

Láncolt lista ezekben is megvalósitható, jobbára úgy, hogy az adatelemből és egy uint indexből képezel egy struktúrát, ami az alapjául szolgál egy dinamikus (vagy statikus) tömbnek.

Mi ebben a furcsa?

A tömböt te indexeled, mint fejlesztő, de a felhasználó már úgy használja, és csak úgy, ahogy te ezt lehetővé teszed neki. Ő nem fog indexelni semmit.

Lásd: stack tömbös megvalósitása.

2022. aug. 19. 21:07
 23/40 A kérdező kommentje:

Ezt irod:


"A láncolt lista lényege, hogy pointerekkel (vagy referenciákkal, olymindegy) vannak láncolva a memoriában külön helyen tárolt elemei, ergo pl simán ki tudsz venni egy elemet a közepéről, de nem tudod indexelni (konstans időben)."


Nem tudom, ebben mi jelentősége van a memóriabeli elhelyezkedésnek?

Az elem kivétel, vagy betoldás tömbös megvalósitás esetén is ugyanaz, mint pointer esetében. A listaindexet irod át. Ennyi.

Az indexelhetőség hiánya meg nem érdeme a láncolt listának. Emliteni is fölösleges volt.

2022. aug. 19. 21:20
 24/40 anonim ***** válasza:
79%

Áhá! Megértettem mire gondolsz.


"Tudod, vannak programnyelvek, amelyekben eleve ismeretlen fogalom a pointer."

Ez egyébként nem igaz, a legtöbb nyelvben van valami referencia típus, egyedül a funkcionális nyelvekben nem, de ott azért mert az adat immutable így nem is lenne értelme, de ez most lényegtelen.


Gyakorlatilag a tömböt egy "virtuális memóriának" használod és pointerek helyett sima tömbindexek a mutatók. Szerintem ennek nincs sok értelme, de oké.


Most akkor végülis azt akarjuk, hogy ugyanaz a lista bejárható legyen infix meg postfix módon is ha jól értem. Ez meg eléggé egyszerű, hisz csak szimplán két különböző "next" mutatód lesz a struktúrában.


struct Node {

T data;

int infixNext; // ugye ez a következő elemre "mutat" infix módon

int postfixNext; // ez meg postfix módon

}


Szóval pl arra a bemenetre, hogy 3 + 2:

Ugye infixben ez: 3 + 2

Postfixben: 3 2 +

Szóval a Nodeok azok:

index| data | infixNext | postfixNext

0 | 3 | 1 | 2

1 | + | 2 | -1

2 | 2 | -1 | 1


A táblázat nem lesz szép valószínüleg. -1-el a "nullpointert" jelöltem.

2022. aug. 19. 21:32
Hasznos számodra ez a válasz?
 25/40 anonim ***** válasza:
0%
Bohóckodás, bohóckodás.
2022. aug. 19. 21:51
Hasznos számodra ez a válasz?
 26/40 A kérdező kommentje:

Köszönöm, értékelem a segitő szándékot, de úgy vélem, az én megoldásom érthetőbb is és egyszerűbb is.


Ha van egy kifejezés, mondjuk

infix: 8 - ( 2 * 3 ) + 1

pstfx: 8 2 3 * - 1 +


Akkor ezt kiirom egy láncolt listába egy az egyben (csak zárójel nélkül): 8 - 2 * 3 + 1

Ennek a listaindexelt tartalma 8[1], -[2], 2[3], *[4], 3[5], +[6], 1[7]


Ebből lesz egy újm a pstfx-nek megfelelő szekvencia.

2022. aug. 20. 00:01
 27/40 A kérdező kommentje:

Ha ezen a listán végigmegy valaki:


8 [1], - [2], 2 [3], * [4], 3 [5], + [6], 1 [7]


Akkor visszakapja a kifejezést, zárójelek nélkül:


8 - 2 * 3 + 1


az indexek átirásával (8 [3], ...) meg a postfix formát, amit már könnyedén kiértékelhet bárki.

2022. aug. 20. 00:13
 28/40 A kérdező kommentje:
Amit te irtál, az is járható út, de egy kezdő számára nehezebben érthető.
2022. aug. 20. 00:16
 29/40 anonim ***** válasza:
86%

Most komolyan az a nap megfejtése, hogy beírod egy kifejezés elemeit egy tömbbe sorban?

Ráadásul a zárójeleket elhagyva, ami miatt ugye rossz eredményt fog adni.

Most komoly, hogy emiatt a bohóckodás miatt tornáztunk ezen ennyit?!?

2022. aug. 20. 00:18
Hasznos számodra ez a válasz?
 30/40 A kérdező kommentje:

Te még a dolog megértéséig se jutottál el.


A kifejezés "felbontása" elkezdődik, ezzel párhuzamosan kerül láncolt listába kiirásra a kifejezés, végül a láncolt lista bejárási sorrendje változik csak, igy alakul ki a postfix forma.

2022. aug. 20. 00:49
1 2 3 4

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!