Egyszeresen láncolt lista, eltávolítja az elemet, c - verem túlcsordulás az orosz
Jó napot kívánok. Van egy kód törlése a elemet a listából
Az elején teljesül is, azaz, Először is, ez eltávolítja az elemet, de más elemeit, hogy valami miért nem működik. Belegondolok a második nap, a fejem zümmögő. Gondolom az algoritmus az alábbiak szerint:
- az elem eltávolításához
- Shift megmaradt elemeinek a listán (balra vagy jobbra, hogy törölték?)
vagy akár arra, hogy: 1. Vegye ki az elemet
- Mi megy át a teljes listát, amíg meg nem botlik egy távoli (NULL)
- Haladunk az összekötő elem az első távoli egység után a távirányító (megkerülve távoli elemet is)
- Ismétlés 3. igénypont amíg nulla elemek. Tekintettel arra, hogy a végén a lista, nem tartjuk.
Köszönöm mindenkinek a segítséget! Kinyitottam egy csomó új dolgot maguknak dolgozik mutató. Külön köszönet
@MichaelPak az indikációja az irányt, ami szükséges ahhoz, ásni, és hogy egy konkrét és részletes magyarázatot a hiba,
@Mike amiért szidtam használatával hatékony algoritmus
@alexolut amit késztette a különbség Ned törlésére és malloc ingyenes
@Vlad Moszkvából a részletes megoldást a problémára, és egy jó ötlet, hogy egy változó típusú előjel nélküli (és esetleg tette).
Nagyon hálás vagyok neked, köszönöm szépen!
Listák rosszabb tömbök úgy, hogy a listákat nem lehet hozzáférni, ha a eleme: szükség van, hogy menjen át a korábbi bejegyzéseket. Ezért, az eltávolítási folyamat a következő:
Így a képről:
Azt is ugyanaz a probléma az, hogy az első eltávolítani elemeket, majd próbálja megtalálni a linket a következő, azaz a helping-> Next-> Következő eltávolítása után már nem mutat a harmadik elem. Először próbálja dolgozni mutatókat, és csak ezután az elem eltávolításához.
Válaszol november 18 '15 at 05:46
Kiváló illusztrációk) - Kromster november 18 '15 at 05:58
2-szer fut a lánc - ez túlzás. Jobb, feljebb a láncot, hogy emlékezzen az előző elemre.
Válaszol november 18 '15 at 06:40