bagli listeler, o kadar zor bir konu degil aslinda ama kodlarken cok hata yapilabiliyor. Sorunun ney oldugunu acik olarak yazsaydin keske, ama basit olarak sana bilgi vereyim.
bagli liste olustuk icin oncelikle bir kendi turunden bir pointer iceren yapi olusturmamiz lazim. Ornegin
struct veri
{
char harf;
struct veri* veriAdres;
};
gibi. genel olarak kod karmasasini onlemek icin bunlar birde typedef edilir.
typedef struct veri Veri;
typedef Veri* VeriADR;
gibi;
ardindan, VeriADR turunden bir pointer uretilip NULL olarak atanir. ornegin
VeriADR baslangicADR = NULL;
simdi yapiya eleman eklemek icin bir fonksiyon yazmak istersek, fonskiyona baslangicADR nin adresini gonderirir, fonksiyon once Veri turunden bir alan yapi olusturur( malloc ) ardindan baslangicADR degerini kontrol eder, eger baslangicADR NULL ise listede eleman yok demektir, bu durumda yeni olusturalan yapinin adresini baslangicADR pointerina gecer ve yeni olusturulan yapinin sonrakiADR degerini NULL gecer. Yok baslangicADR NULL degil ise, baslangicADR degerinden baslayarak dizinin sonuna gelene kadar ya da uygun yere gelene kadar tum listeyi gezer, ve uygun yeri buldugunda listenin bir onceki elamanin sonrakiADR degerini yeni olusturdumuz yapinin adresine esitler, yeni olusturdugumuz yapi listenin sonunda ise sonrakiADR degerini NULL gecer degil ise bir sonraki elemanin adesini atar.
Boyle cok karisik oldu biliyorum, ama soruyu cok genel sormussun, eger istersen bilgisayarimda bir kac tane ufak ornek program olmasi lazim, duruyorsa kodlarini gonderirim incelersin.