Doubly Linked List [C]
-
Merhaba herkese,
Rastgele numaralardan olusan bir doubly linked list yaratmam gerek C'de.Singly Linked List'i yapabiliyorum onda sorun yok fakat programda gerekenler biraz olayi karistiriyor.
3 adet dosya olacak programda.Driver.C,benim int main fonksiyonumun oldugu dosya.Node.h,header dosyasi,benim node'lari yarattigim dosya,ve linkedlist.h dosyasi,Linked list'e node ekleme,silme ve listeyi yarattigim dosya.
Suanda takildigim nokta su ki,bir turlu linkedlist.h dosyasindaki insert( ) fonksiyonunu herhangi biryerden,driver.c dosyasindan ya da node.h dosyasindan cagiramiyorum.Bu yuzden ayni zamanda yeni bir bos linkedlist te yaratamiyorum,ya da ekleme yapamiyorum listeye.Bu problemi nasil cozebilirim internetten kod kopyalamadan?
edit: ornek verilen kod uzun olmasi ve problemin cozulmesi nedeniyle silindi...
Ozet soru:
2 header dosyam var,1 C dosyam var. C dosyasinda #include kullanarak node.h C dosyasina ekliyorum,Linkedlist.h dosyasi #include kullanarak C dosyasinda ekli degil,Linkedlist.h dosyasinda da #include kullanarak node.h dosyasini ekliyorum.Fakat ben C dosyasindan Linkedlist.h'teki ekle ( ) fonksiyonunu cagiramiyorum,bunu bir sekilde cozmem gerek.Yoksa bos liste uretemiyorum en basitinden.
Tesekkur ederim.
cordelian tarafından 06/Haz/16 00:13 tarihinde düzenlenmiştir -
Bu zamana kadar kendim ogrenmeye calistigim,internetteki taslaklar ile,bana verilen taslagin farkli olmasindan dolayi zorlandigim icin C'de doubly linkedlist kodumu asagida paylasiyorum.Ne kadar cok kaynak olursa ileride ogrenmeye calisanlar o kadar az sikinti ceker sanirim.
Asagidaki kod 1 C ve 2 header dosyasindan olusuyor.C dosyasinda rastgele 7 numara uretip listeye eklemek icin gerekli fonksiyona cagirma,listeyi ekrana yazdirma,ve listeden herhangi bir numara silme islemi yapiliyor.Dnode dosyasinda ise,yeni bir node uretiyorum ve gonderilen node'u yazdirma fonksiyonu var.DLinkedlist dosyasinda ise yeni bir liste uretme,listeye node ekleme,listeden node silme ve listeyi yazdirma fonskiyonlari var.Yeterli aciklamalari yorum olarak yazdim kodda.Umarim birine egitici olur ve isine yarar.
Yardimlarindan dolayi @j4x'e tesekkur ederim.
Bu konu nedir ? diyenler icin.
-
fakrlı konu açmadan benim de doubly circular linked list içeren bir ödevimde sıkıntım var yazayım. struct olarak yapmak istediğim şeyi yaptım diyebilirim ama free kullanmadığımdan olsa gerek 5 6 input sonra program çöküyor. (çok fazla input gelicek) free kullanınca da iyice sapıtıyor. o structlar bana program sonuna kadar lazım nasıl free yapayım ki ?
-
nurulmac11 bunu yazdı
fakrlı konu açmadan benim de doubly circular linked list içeren bir ödevimde sıkıntım var yazayım. struct olarak yapmak istediğim şeyi yaptım diyebilirim ama free kullanmadığımdan olsa gerek 5 6 input sonra program çöküyor. (çok fazla input gelicek) free kullanınca da iyice sapıtıyor. o structlar bana program sonuna kadar lazım nasıl free yapayım ki ?
Ornek kod verebilir misin? @nurulmac11 ya da daha fazla anlatabilir misin problemi?
Free olayi sanirim,node'lari free yapmak istiyorsun hafizada alan acmak icin.
-
nurulmac11 bunu yazdı
fakrlı konu açmadan benim de doubly circular linked list içeren bir ödevimde sıkıntım var yazayım. struct olarak yapmak istediğim şeyi yaptım diyebilirim ama free kullanmadığımdan olsa gerek 5 6 input sonra program çöküyor. (çok fazla input gelicek) free kullanınca da iyice sapıtıyor. o structlar bana program sonuna kadar lazım nasıl free yapayım ki ?
5-6 input sonra çökmesinin free ile bir bağlantısı olacağını düşünmüyorum. 4 gb ram'in olduğunu varsayalım. Programı çalıştırdığın anda 200 mb boş alan olsun. 5-6 tanede çökmesi için bir node'un 40 mb yer tutması lazım :) Tabi virtual memory falan olmadığını varsayıyoruz. Dolayısıyla orada başka bir iş var. Daha ayrıntılı bilgi verirsen yardımcı olmaya çalışalım.
-
sağolun müritler. sorun neydi hatırlamıyorum ama halledeli oldu baya :D ama freede değildi dediğniz gibi .