Created
December 24, 2023 15:08
-
-
Save yusufpapurcu/1f72655f2d78cd83328fb88a398c0f57 to your computer and use it in GitHub Desktop.
erdem psuedo solution
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
while (yiginDizi.size() != 1){ | |
kopyaYiginDizi // yigin dizisinin kopyasini aliyoruz | |
silinecekYiginIndeks; // her while turunda bir yigin silmemiz lazim | |
operasyonTuru = 0; // enKucuk > enBuyuk > enKucuk.... seklinde her tur otekine bakmamiz lazim | |
while (silinecekYiginIndeks == NULL) { | |
int enKucuk = INT_MAX; // klasik taktik, ilk iterasyonda degismesini garantilemek icin | |
int enBuyuk = INT_MIN; | |
int silinecekEleman = 0; // hangi yigindan eleman cikaracagimizin indeksi | |
for (kopyaYigin: kopyaYiginDizi){ | |
if (yigin == NULL) { // null pointer yememek icin | |
continue; | |
} | |
// enKucuge bak | |
if (counter % 2 == 0) { | |
if (yigin->getir() < enKucuk) { | |
enKucuk = yigin->getir(); | |
silinecekEleman = yigin->yiginNo - 1; // yiginNo degiskeni ekledim yigin objesine. Indeks + 1; | |
} | |
} | |
else { | |
if (yigin->getir() > enBuyuk) { | |
enBuyuk = yigin->getir(); | |
silinecekEleman = yigin->yiginNo - 1; | |
} | |
} | |
} | |
kopyaYiginlar[silinecekEleman]->cikar(); | |
if (kopyaYiginlar[silinecekEleman]->bosMu()) { // ilk biten yigini ana diziden silecegiz | |
silinecekYiginIndeks = &silinecekEleman; | |
} | |
++counter; | |
} | |
delete yiginlar[*silinecekYiginIndeks]; | |
} | |
// bu while'dan cikinca yigin listesinde sadece 1 eleman kalacak sonuc olarak. | |
// geriye kalan tek sey ASCII ve yigin no ekrana basmak |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment