Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Çift Yönlü Bağlantılı Liste C++ Kodu Yardım Eder misiniz ?
#1
Koda insertion sort eklemeye çalışıyoruz 2 gündür fakat yapamadık , bilgisi olan yardım edebilecek varsa lütfen yardım eder misiniz ?


//[KOD]


Kod:
// Çift Yönlü Bağlantılı Liste Kodu
[/font][/size][/color]
#include <iostream>

#include<stdlib.h>

using namespace std;

// listedeki veri yapısının tanımlanması

typedef struct topluluk {

int bilgi;

struct topluluk *arka;

struct topluluk *on;

}BAGLISTE;

// Listenin ilk ve son elemanlarının adreslerini tutan işaretçiler

BAGLISTE *ilk=NULL, *son=NULL;

BAGLISTE *ara(int), *okuKlavye();

void yazEkrana(BAGLISTE *yazilicak);int ekle(BAGLISTE *ki);int listele(); int sil(int);

int main()

{

BAGLISTE *eklenecek, *ki;

int bilgi, sonuc,tmp;

char secim;

while(1){

// Ekrana Menü çıkarılıyor

cout<<endl<<"Ekleme"<<endl<<"Listeleme"<<endl<<"Arama"<<endl<<"Silme"<<endl;

cout<<"Cikis"<<endl<<"Seciminiz ?"<<endl;

cin>>secim;

switch(secim)

{

case 'E':

{

eklenecek=okuKlavye(); //ekleme secildi

if (eklenecek!=NULL) ekle(eklenecek);

else cout<<endl<<"Ekleme icin bellek dolu ! "<<endl;

break;

}

case 'L':// listeleme seçildi

{

sonuc=listele();

if (sonuc==1) cout<<endl<<"Bos Liste ! "<<endl;

break;

}

case 'A': // Arama secildi

{

cout<<endl<<"Aranan: ";

scanf("%d",&bilgi);

ki=ara(bilgi);

if (ki==NULL) cout<<endl<<"Aranan Bulunamadi ! "<<endl;

else yazEkrana(ki);

break;

}

case 'S': // Silme secildi

{

cout<<endl<<"Silinecek: ";

scanf("%d",&bilgi);

tmp=sil(bilgi);

if (tmp==-1) {cout<<endl<<"Silindi ! "<<endl;}

else {cout<<"Silinmek istenen veri listede yok ! "<<endl;}

break;

}

case 'C':// Çıkış seçildi

{

cout<<"HOSCAKAL :) "<<endl;

exit(0);

}

default:cout<<"Yanlıs Secim !! "<<endl;

}

}

system("pause");

return 0;

}

// fonksiyonlar

void yazEkrana(BAGLISTE *yazilacak){

printf("bilgi: %d \n",yazilacak->bilgi);

}

int ekle(BAGLISTE *ki){

if(ilk!=NULL)

{son->arka=ki;

ki->on=son;

son=ki;

son->arka=NULL; }

else{

ilk=ki;

son=ilk;

ilk->on=NULL;

ilk->arka=NULL;

}

return 0;

}

int listele(){

BAGLISTE *p;

p = new BAGLISTE;

p=ilk;

if (p==NULL) {return 1;}

while(p!=NULL){

yazEkrana(p);

p=p->arka;

}

return 0;

}

BAGLISTE *ara(int aranan)

{

BAGLISTE *p;

p = new BAGLISTE;

p=ilk;

while(p!=NULL){

if(p->bilgi==aranan) return p;

p=p->arka;

}

return NULL;

}

int sil(int silinecek)

{

BAGLISTE *p;

p = new BAGLISTE;

p=ilk;

while(p!=NULL){

if(silinecek==p->bilgi) break;

p=p->arka;

}

if (p!=NULL)

{

if(p->on==NULL && p->arka==NULL)

{

ilk=NULL;son=NULL;

}

else if (p->on==NULL && p->arka!=NULL)

{

ilk=p->arka;

ilk->on = NULL;

}

else if (p->on!=NULL&& p->arka==NULL)

{

son=p->on;

son->arka=NULL;

}

else

{BAGLISTE *onceki, *sonraki;

onceki=p->on;

sonraki=p->arka;

onceki->arka=sonraki;

sonraki->on=onceki;

}

delete(p);

return -1;

}

else return 0;

}

BAGLISTE *okuKlavye(){

BAGLISTE *okunan;

okunan=new BAGLISTE;

if (okunan==NULL)

return NULL;

cout<<"Bilgi Giriniz"<<endl;

scanf("%d",&(okunan->bilgi));

okunan->on=NULL;

okunan->arka=NULL;

return okunan;
[color=#444444][size=small][font=Roboto, Arial, sans-serif]}



//[KOD]
  


Hızlı Menü:


Konuyu Okuyanlar:
3 Ziyaretçi