IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
2Beğeni(ler)
  • 1 Post By aSi
  • 1 Post By Nickolas

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 19 Şubat 2012, 00:01   #1
Çevrimdışı
aSi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
C++’ın nimetlerinden Linked List yaratma





Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Linked list yani diğer adıyla bağlı listeler C++ dilinde en çok kullanılan veri yapılarından biridir. Özellikle Queue ve Stack yapılarını uygulamaya geçirmek için kullanılır. Buradaki ana nokta yarattığımız node’ları pointerlarla bir sonraki node’a bağlamak ve bu şekilde dinamik olarak listemizin eleman sayısını istediğimiz kadar arttırabilmek. Linked listlerin arraylardan farkı arraylar gibi fix bir boyuta sahip olmamalarıdır bu da bize hem bellekten tasarruf sağlar hem de eleman sayısını bilemediğimiz algoritmaları kurmamızda büyük ölçüde yardım sağlar.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <iostream> using namespace std; class node//ihtiyacımız olan datayı girmek ve link listteki pointerları yaratmak için gerekli olan verilere //sahip olan node isimli bir class yarattık. { public: int veri; node *sonraki; //bir sonraki elemanı bağlayacak pointer }; class liste//listeyi oluşturacak fonksiyonların tanımlandığı list isimli class { private: node *ilk;//listemizin ilk elemanı için bir pointer tanımladık public: liste()//default constructer'ımızı yarattık. { ilk=NULL;//first pointerımızı null yaptık ki ilk başta listemiz boş olsun. } void eleman_ekle(int x) { node *tmp=new node; //geçici bir tmp pointerı atadık tmp->veri=x; // ekleyecek oldugumuz elemanı geçici pointerımızın datasına gönderdik. tmp->sonraki=ilk;// önceden tanımlamış olduğumuz bağlayıcı pointerımızı ilk eklediğimiz //elemanın adresine atıyoruz ilk=tmp; // son olarak da atadığımız pointerları birbirine eşitliyoruz. } void eleman_sil(int x) { node *tmp;//yine gecici bir pointer atadık. int sayac=0; for(tmp=ilk;tmp!=NULL;tmp=tmp->sonraki) // istediğimiz elemanı silebilmek için tüm listeyi dolaşmamız {//için bu for döngüsünü yazdık. if(tmp->veri==x)//silmek istediğimiz elemanın listede olma durumu sayac++; } if(sayac!=0) //eğer aradığımız silmek istedğimiz eleman listedeyse { if(ilk->veri==x) { tmp=ilk; //bu iki satırda silme işlemini yapıyoruz. ilk=tmp->sonraki; } else { for(tmp=ilk;tmp->sonraki->veri!=x;tmp=tmp->sonraki){} tmp->sonraki=tmp->sonraki->sonraki;// bu satırda ise 2 satır sonraki elemanın pointerını bir önceki elemanın adresine atıyoruz. } } else { cout<<" BULUNAMADI !"<<endl;//elemanın listede olmama durumu. } } void yazdir() { node *tmp; for(tmp=ilk;tmp!=NULL;tmp=tmp->sonraki) //listedeki tüm nodeları dolaşmamızı sağlayan for döngüsü { cout<<" _____"<<endl; cout<<" "<<tmp->veri<<endl;//tüm elemanların adresine ulaşma yöntemimiz } } void arama(int x) // arama fonksiyonumuz { node *tmp; int sayac=0; for(tmp=ilk;tmp!=NULL;tmp=tmp->sonraki) { if(tmp->veri==x)//aradığımız eleman listedeyse sayacı 1 arttırıyoruz. sayac++; } if(sayac!=0)//eğer sayaç artmış ise eleman bulunmuştur { cout<<"Eleman Bulundu.."<<endl; } else { cout<<"Eleman listede yok.."<<endl; } } }; int main() { liste a;// bir obje yaratıyoruz a.eleman_ekle(25);//objeleri kullanarak yazdığımız tüm fonksiyonları çağırabiliriz. a.eleman_ekle(45); a.eleman_ekle(67); a.eleman_ekle(13); a.eleman_ekle(56); a.eleman_ekle(49); a.eleman_ekle(35); a.eleman_ekle(84); a.eleman_sil(84); a.arama(84); a.yazdir(); system("pause"); return 0; }



__________________
Doğruları biliyorsan, yalanları dinlemek eğlencelidir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Alt 19 Şubat 2012, 06:41   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: C++’ın nimetlerinden Linked List yaratma




C 'de ve C++ 'da linked listler en temel ihtiyaçlardan biri
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Eline sağlık

 
Alıntı ile Cevapla

Cevapla

Etiketler
linked, list, nimetlerinden, yaratma, ’ın


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Yaratma ve Klonlama Kalemzede İslamiyet 1 09 Temmuz 2011 04:23
Oper Yaratma Diyalogu kup{a}pazl mIRC Scripting Hazır Kodlar 0 25 Aralık 2009 00:27
Bot yaratma başarısız. vaga Servisler 2 23 Ekim 2007 09:23
İcon Yaratma yanki HTML/CSS/JavaScript 3 24 Aralık 2005 19:43