1.
bilgisayarda hafızanın stack ve heap bölümlerinin çalışma mekaniği anlaşılmadan kavranamayacak hadisedir bağlı listeler. namıdiğer, linked lists. bunların olayı stack'teki verileri ardışık hücrelere kaydetme olayını gereken durumlarda kırabilmektir ve bunun için de işaretçileri kullanmaya, yani heap bölgesini de işe dahil etmeye ihtiyacımız vardır. bu işlem sayesinde sıradaki veriyi istediğimiz hücreye kaydedebiliriz.
ayrıca bu işlemde class kullanmaya da ihtiyaç duyacağımızı hatırlatmak isterim. tabi isterseniz structre kullanıp fonksiyonları da ayrıca oluşturabilirsiniz ama büyük projelerde böyle bir işlem aptallıktan başka şey değildir, adama git kumda assembly'le oyna diye gülerler...
normalde iki farklı şekilde bu işlem yapılabilir: tek yönlü ve çift yönlü. ben ise bu tanımda basit bir biçimde c++'ta tek yönlü liste oluşturmayı göstereceğim:
öncelikle bir class oluşturalım ve işlemimizi tanımlayalım:
class lost
{
lost()
{
int pnext = null;(burada class başlatıldığında yapılacak işlemi tanımladık, yani pnext başlangıçta değersiz olacak)
}
int veri;
lost* pnext;(burada da pnext'in bir pointer olduğunu bilgisayara tanıtmış olduk)
}
int main()
{
lost* p1 = new(heap'te alan bu kodla alınır) lost();
lost* p2 = new lost();
lost* p3 = new lost();
lost* p4 = new lost();
lost* p5 = new lost();
lost* p6 = new lost();(öncelikle değişkenlerimizi ve işaretçilerini tanımladık, sırada onlara değer vermek ve aralarında ilişki kurmak var)
p1->data = 4;(structre'lardan, yani burada class'tan, bir değişken ya da fonksiyon çağrılırken "." kullanılır ama söz konusu bir işaretçiyse "->" kullanılır)
p2->data = 8;
p3->data = 15;
p4->data = 16;
p5->data = 23;
p6->data = 42;
p1->pnext = p2;
p2->pnext = p3;
p3->pnext = p4;
p4->pnext = p5;
p5->pnext = p6;
}
ayrıca bu işlemde class kullanmaya da ihtiyaç duyacağımızı hatırlatmak isterim. tabi isterseniz structre kullanıp fonksiyonları da ayrıca oluşturabilirsiniz ama büyük projelerde böyle bir işlem aptallıktan başka şey değildir, adama git kumda assembly'le oyna diye gülerler...
normalde iki farklı şekilde bu işlem yapılabilir: tek yönlü ve çift yönlü. ben ise bu tanımda basit bir biçimde c++'ta tek yönlü liste oluşturmayı göstereceğim:
öncelikle bir class oluşturalım ve işlemimizi tanımlayalım:
class lost
{
lost()
{
int pnext = null;(burada class başlatıldığında yapılacak işlemi tanımladık, yani pnext başlangıçta değersiz olacak)
}
int veri;
lost* pnext;(burada da pnext'in bir pointer olduğunu bilgisayara tanıtmış olduk)
}
int main()
{
lost* p1 = new(heap'te alan bu kodla alınır) lost();
lost* p2 = new lost();
lost* p3 = new lost();
lost* p4 = new lost();
lost* p5 = new lost();
lost* p6 = new lost();(öncelikle değişkenlerimizi ve işaretçilerini tanımladık, sırada onlara değer vermek ve aralarında ilişki kurmak var)
p1->data = 4;(structre'lardan, yani burada class'tan, bir değişken ya da fonksiyon çağrılırken "." kullanılır ama söz konusu bir işaretçiyse "->" kullanılır)
p2->data = 8;
p3->data = 15;
p4->data = 16;
p5->data = 23;
p6->data = 42;
p1->pnext = p2;
p2->pnext = p3;
p3->pnext = p4;
p4->pnext = p5;
p5->pnext = p6;
}
devamını gör...
"bağlı listeler" ile benzer başlıklar
listeler
1