#include #include #include typedef struct araba { araba *next; int data; }; typedef struct parkslot { araba * root; }; araba * ekle(araba* root, int eklenecek){ araba * temp = ( araba *) malloc(sizeof(araba)); temp->data = eklenecek; temp->next = root; root=temp; return temp; } araba * sil (araba * root){ araba * temp = root->next; free(root); return temp; } void eklesil(parkslot *p1, parkslot* p2){ p2->root=ekle(p2->root,p1->root->data); p1->root=sil(p1->root); } araba * ara ( araba* root, int aranan){ araba * iter=root; while(iter->next!= NULL){ if(iter->data==aranan){ return iter; } iter= iter->next; } if(iter->data == aranan){ return iter; } return NULL; } void goster(araba *root){ araba * iter=root; while(iter!= NULL){ printf("%d - ",iter->data); iter= iter->next; } printf("\n"); } int main(){ parkslot p1; parkslot p2; parkslot p3; p1.root=NULL; p2.root=NULL; p3.root=NULL; int secim=0; while(secim!=-1){ printf("Lutfen seçiminizi giriniz: \n1. araba girişi\n2. araba çıkışı\n3. Slotları göster\n-1. Çıkış\n"); scanf("%d",&secim); if(secim==1){ printf("Lutfen plakasını giriniz:"); int plaka; scanf("%d",&plaka); p1.root=ekle(p1.root,plaka); } else if (secim == 2){ printf("Lutfen plakasini giriniz:"); int plaka; scanf("%d",&plaka); araba* bulunan = ara(p1.root,plaka); if(bulunan!=NULL){ while(p1.root->data!=plaka){ eklesil(&p1,&p2); } p1.root=sil(p1.root); } else{ bulunan = ara(p2.root,plaka); if(bulunan!=NULL){ while(p2.root->data!=plaka){ eklesil(&p2,&p3); } p2.root=sil(p2.root); } else{ bulunan = ara(p3.root,plaka); if(bulunan!=NULL){ while(p3.root->data!=plaka){ eklesil(&p3,&p1); } p3.root=sil(p3.root); } else { printf("otoparkta bu arac yok"); } } } } else if(secim==3){ goster(p1.root); goster(p2.root); goster(p3.root); } } /* p1.root=ekle(p1.root,10); p1.root=ekle(p1.root,50); p1.root=ekle(p1.root,60); p1.root=sil(p1.root); eklesil(&p1,&p2); eklesil(&p2,&p3); p2.root=ekle(p2.root,20); p3.root=ekle(p3.root,30); */ getch(); return 0; }