BAĞLI LİSTEDE (LİNKED LİST) TÜM İŞLEMLER

Veriyapılarının Önemli konularından birisi olan Bağlı liste (linked list) üzerinde tüm işlemlerin gerçeklendiği bu makalemde bağlı listeye eleman ekleme eleman silme,eleman arama ve listenin herhangi bir yerine eleman eklemeyi göreceksiniz.

İŞTE EKLEME NİN MANTIĞI AŞAĞIDAKİ SİMULASYONDADIR.

SİLME MANTIĞI AŞAĞIDAKİ ANİMASYONDA GÖSTERİLMİŞTİR

Önceki hal Silinmemiş hal:

Son hali yani silinmiş hali:

#include<iostream>
using namespace std;

class dugum {
public:
dugum(){data=0,next=NULL;}

int data;
dugum *next;
};

class bagliste{
public:
bagliste();
void insertion(int);
void anywhere(int,int);
void deletion(int);
void yaz();
private:
int counter;
dugum *head;
};

bagliste::bagliste()
{
counter=0;
head=NULL;
}

void bagliste::insertion(int a)
{
dugum* pnew=new dugum;
pnew->data=a;
pnew->next=NULL;
dugum *tmp=head;

if(head==NULL)
head=pnew;
else
{
while(tmp->next!=NULL)
tmp=tmp->next;

tmp->next=pnew;
}
counter++;

}

void bagliste::anywhere(int i,int a)
{
dugum* pnew=new dugum;
pnew->data=a;
pnew->next=NULL;

dugum *p1=head;
dugum *p2;

for(int j=1;j<=i;j++){
p2=p1;
p1=p1->next;
}
pnew->next=p2->next;
p2->next=pnew;
counter++;

}

void bagliste::deletion(int k)
{
dugum *p1=head;
dugum *p2;

while(p1->data!=k&&p1->next!=NULL){
p2=p1;
p1=p1->next;

}
if(p1->data==k){
p2->next=p1->next;
delete p1;
counter–;
}
else
cout<<k<<” zaten listede yok\n”;
}

void bagliste::yaz()
{
dugum* p1=head;
while(p1!=NULL){
cout<<p1->data<<”  “;
p1=p1->next;

}
cout<<endl;

}

main()
{
bagliste B;
for(int i=0;i<20;i++)
B.insertion(i);
B.yaz();
B.anywhere(20,123);
B.yaz();
B.deletion(43);
B.yaz();
system (“pause”);
}

 

Oracle Exadata SQL Server Goldengate Weblogic EBS ve Linux konusunda aşağıdaki konularda 7×24 Uzman Danışmanlara yada Eğitimlere mi
İhtiyacınız var mehmet.deveci@gridgroup.com.tr adresine mail atarak Bizimle iletişime geçebilirsiniz.

– Oracle Veritabanı Danışmanlığı
– Oracle Veritabanı Bakım ve Destek
– Exadata Danışmanlığı
– Exadata Bakım ve Destek
– SQL Server Veritabanı Danışmanlığı
– SQL Server Veritabanı Bakım ve Destek
– Goldengate Danışmanlığı
– Goldengate Bakım ve Destek
– Linux Danışmanlığı
– Linux Bakım ve Destek
– Oracle EBS Danışmanlığı
– Oracle EBS Bakım ve Destek
– Weblogic Danışmanlığı
– Weblogic Bakım ve Destek
– Oracle Veritabanı Eğitimleri
– Oracle VM Server Danışmanlığı
– Oracle VM Server Bakım ve Destek
– Oracle EPPM Danışmanlığı
– Oracle EPPM Bakım ve Destek
– Oracle Primavera Danışmanlığı
– Oracle Primavera Bakım ve Destek
– Oracle Eğitimleri
– SQL Server Eğitimleri
– Goldengate Eğitimleri
– Exadata Eğitimleri
– Linux Eğitimleri
– Oracle EBS Eğitimleri
– Oracle VM Server Eğitimleri
– Weblogic Eğitimleri
– Oracle EPPM Eğitimleri
– Oracle Primavera Eğitimleri

7 thoughts on “BAĞLI LİSTEDE (LİNKED LİST) TÜM İŞLEMLER

  • November 29, 2010 at 4:09 pm
    Permalink

    c de yazabilirmisin?

    Reply
  • November 29, 2010 at 4:21 pm
    Permalink

    C den Farkımı var bu kodun?? Class yapısının yerine Struct tanımla cout yerine de printf yazarsan olur sana C kodu…!!!

    Reply
  • December 24, 2010 at 5:39 pm
    Permalink

    elamanları bağlantılı listede sıralı tutulan bir kümenin sıralı olma özelliğini bozmadan,bu kümeye elaman ekleyen bir c programı yaz
    soru
    bu lütfen bu msn adresine cvp atın

    Reply
    • December 25, 2010 at 10:26 am
      Permalink

      cevabı zaten yorum yazdığınız yazı da mevcuttur bunu DevC++ derleyicisiyle koşturduğunuzda görebilirsiniz…

      Reply
  • August 5, 2011 at 10:46 pm
    Permalink

    iyi günler ben bilgisayar mühendisliğinde okuyorum bi ödevim var ama yapamadm yardımcı olursanız çok sevinirim. ödevim şu: basamak sayısı çok büyük olan ve klavyeden girilecek 2 sayı için toplama işlemi yapabilen bir C programı yazmanız istenmektedir. program önce 1. sayıyı sonra 2. sayıyı almalı,sonra bu iki sayının toplamını ekranda göstermelidir.programda basamak sayısı istenildiği kadar büyük olabilmelidir.bu özelliği desteklemek için her sayıyı tek ya da iki yönlü bağlı listede saklayıp işlemleri uygun halde gerçekleştirmenz gerekmektedir.sayıları alırken kesinlikle basamak sayısı sorulmamalı ve her iki sayınında basamak sayısı farklı olmalıdır. bu ödevimi 8 temmuza kadar yapmak zorundayım. yardımlarınız için şimdiden çokk tşkler

    Reply
  • August 5, 2011 at 10:50 pm
    Permalink

    pardon 8 temmuz değil 8 ağustos olacaktı…

    Reply
    • August 6, 2011 at 12:22 pm
      Permalink

      Ada, Yazıda verilen kodda herhangi bir elemanın listeye eklenmesi gösterilmiştir.Bu şekilde istediğin değerleri istediğin formatta bu koda bir iki değişiklik yaparak elde edebilirsin…!!!

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *