Merhaba. Aklıma takılan bir şey var. Herhangi bir kodlama diliyle alakalı değil, tamamen algoritma. Mesela elimizde dışarıdan gelen veriye göre 1-1 artan sayi değişkeni var. Her veri girildiğinde aşağıdaki gibi oluyor:
0, "Veri"
1, "Veri"
2, "Veri"
Biz aradan 1 numaralı veriyi silersek şöyle bir çıktı alıyoruz:
0, "Veri"
2, "Veri"
Daha sonrasında girilecek veride 3’ten devam etmesi değil de ilk olarak boş olan numarayı doldurmak için nasıl bir algoritma kurmam gerekiyor? Python dili ile örnek vererek açıklarsanız çok iyi olur benim için.
Not: Veriler dinamik olarak ekleniyor. Kodla değil.
Selamun Aleyküm, aşağıda istediğinize benzer bir kod yazdım Umarım işinize yarar.
# -*- coding: utf-8 -*-
veriler = [[],[]] # [[veri_siralari], [veri_değerleri]] şeklinde liste tanımladım
def kayit(veri):
sayac = 0
# Önce veriler listesinin boş olup olmadığını kontrol ediyoruz
if len(veriler[0]) == 0: # Eğer veri_siralari listesi boşsa
veriler[0].append(0) # veri_siralari listesine 0 değerini ekle
veriler[1].append(veri) # veri_degerleri listesine ilk veriti ekle
else: # Liste boş değilse
for i in range(len(veriler[0])): # veri_siralari listesinin uzunluğu kadar dön
if veriler[1][i] == "": # Eğer değeri silinmiş bir veri varsa
veriler[1][i] = veri # Buraya yeni veriyi ekle
break # Başka birşey yapma
elif sayac == (len(veriler[1])-1): # Eğer son veriye gelinmiş ise
veriler[0].append(len(veriler[0])) # veri_siralari'na yeni sira ekle
veriler[1].append(veri) # veri_degerleri'ne yeni değeri ekle
else:
pass
sayac += 1
for eleman in veriler[0]:
print(veriler[0][eleman],". kayit --> ",veriler[1][eleman])
def sil(veri_sirasi):
veriler[1][veri_sirasi]=""
for eleman in veriler[0]:
print(veriler[0][eleman],". kayit --> ",veriler[1][eleman])