• Vaynet.net, Türkçe içerikli genel forum sitesi ve eğlenceli paylaşım sitesi olarak kullanıcılara keyifli ve etkileşim dolu bir forum deneyimi sunuyor. Forum sitemizde merak ettiğiniz sorulara cevap bulabilir ve bildiğiniz konularda da diğer forum üyelerimize yardımcı olabilirsiniz.

    Foruma katılmak için BURAYA TIKLAYIN

Delphi Bağlı Liste Ekleme,Silme,Listeleme

Acoupotan

Forum Üyesi
Katılım
22 Eyl 2022
Mesajlar
166
Puanları
0
Konum
Egypt
Merhaba
Pratikte çok kullandığımız bir yöntem değil fakat özellikle öğrenci ödevleri için bolca gelen sorulardan birini paylaşmak istedim. Bağlı liste (Linked List) dediğimiz yapılarda tek yönlü olarak ekleme,silme,listeleme için bir örnek hazırladım.

unit Unit1;

interface

uses
*Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
*Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
*TFrmOrnek = class(TForm)
* *memSonuc: TMemo;
* *BtnIslem: TButton;
* *memSonuc2: TMemo;
* *procedure BtnIslemClick(Sender: TObject);
*private
* *{ Private declarations }
*public
* *{ Public declarations }
*end;

*Ogrenci * = ^TOgrenci; // Struct Tanım
*TOgrenci *= record
* *No * * *: Integer;
* *Ad * * *: String;
* *Soyad * : String;
* *Sonraki : Ogrenci;
*end;

var
*FrmOrnek: TFrmOrnek;
*First : Ogrenci; // Bağlı Listenin İlk Elemanı
implementation

{$R *.dfm}

procedure Ekle(const No:Integer;const Adi,Soyadi:String); //Bağlı listeye eleman ekleme yapar
var AddItem,Temp : Ogrenci;
begin
* * New(AddItem);
* * AddItem^.No * * *:= No;
* * AddItem^.Ad * * *:= Adi;
* * AddItem^.Soyad * := Soyadi;
* * AddItem^.Sonraki := nil;
* * if First = nil then // İlk Eleman Boş İse
* * * *First := AddItem
* * else
* * begin
* * * * *Temp:= First;
* * * * *while Temp^.Sonraki nil do
* * * * *begin
* * * * * *Temp:=Temp^.Sonraki;
* * * * *end;
* * * * *Temp^.Sonraki:= AddItem; // Sona eleman eklendi
* * end;
end;

function Sil(const No:Integer):Boolean;
var
*Tmp,TmpSil : Ogrenci;
begin
*Result := False;
*if First = nil then // İlk Eleman Boş İse
* *Result := False
*else if First^.No = No then // Silinecek İlk Eleman İse
*begin
* *TmpSil := First;
* *First *:= First^.Sonraki;
* *Dispose(TmpSil);
* *Result := True;
*end
*else // Aradan veya sondan eleman silme
*begin
* *Tmp := First;
* *while Tmp^.Sonraki nil do
* *begin
* * *if Tmp^.Sonraki^.No = No then
* * *begin
* * * *TmpSil := Tmp^.Sonraki;
* * * *Tmp^.Sonraki := TmpSil^.Sonraki;
* * * *Dispose(TmpSil);
* * * *Result := True;
* * * *Break;
* * *end;
* * *Tmp := Tmp^.Sonraki;
* *end;
*end;
end;

procedure Listele(memLines:TStrings);
var
*Tmp : Ogrenci;
begin
*if First = nil then Exit;
*memLines.BeginUpdate;
*memLines.Clear;
*Tmp := First;
*while Tmp nil do
*begin
* *memLines.Add(Format('Numara = %d, Adı = %s, Soyadı = %s',[Tmp^.No,Tmp^.Ad,Tmp^.Soyad]));
* *Tmp := Tmp^.Sonraki;
*end;
*memLines.EndUpdate;
end;

procedure TFrmOrnek.BtnIslemClick(Sender: TObject);
begin
*Ekle(1,'Ahmet','TAŞARAN');
*Ekle(2,'Esra','KAYA');
*Ekle(3,'Canan','DEMİRCİ');
*Listele(memSonuc.Lines);
*Sil(2);
*Listele(memSonuc2.Lines);

{
*Sonuc1
*Numara = 1, Adı = Ahmet, Soyadı = TAŞARAN
*Numara = 2, Adı = Esra, Soyadı = KAYA
*Numara = 3, Adı = Canan, Soyadı = DEMİRCİ
}
{
*Sonuc2
*Numara = 1, Adı = Ahmet, Soyadı = TAŞARAN
*Numara = 3, Adı = Canan, Soyadı = DEMİRCİ
}

end;

end.
 

Genel Forum

Türkçe Forum Siteleri

İnternette bilgi paylaşımı ve tartışma ortamı arayanlar için forum siteleri uzun yıllardır popüler bir tercih olmuştur. Her yaştan ve ilgi alanından kullanıcıya hitap eden genel forum siteleri, teknoloji, oyun, kültür ve daha pek çok konuda geniş içerik sunmaktadır. Bu platformlar, katılımcıların hem öğrenme hem de eğlenceli vakit geçirme ihtiyaçlarını karşılamaktadır.

Genel Forum Sitesi

İnternette Türkçe forumlar üzerinden içerik paylaşmak, dil bariyerini ortadan kaldırarak yerel kültüre uygun bir deneyim sunar. Türkçe forum siteleri, kullanıcıların bilgiye kolayca ulaşabileceği, aynı zamanda sosyal ve eğlenceli paylaşımlar yapabileceği platformlar oluşturur. Türkiye'deki internet kullanıcıları için bu forumlar, ilgi çekici konularda derinlemesine sohbetler sunar.

Genel Forum Siteleri

Günlük hayatın stresinden uzaklaşmak isteyenler için eğlenceli forumlar, keyifli bir alternatif sunar. Farklı hobilere ve ilgi alanlarına yönelik içeriklerle dolu olan bu forum paylaşım siteleri, kullanıcılarına samimi bir ortamda vakit geçirme fırsatı sunarken, aynı zamanda yeni insanlarla tanışma imkanı da sağlar. Eğlenceli paylaşımlar ve interaktif etkinliklerle dolu olan bu platformlar, hem öğrenmeyi hem de keyifli vakit geçirmeyi bir arada sunar.

İnternette yeni bir topluluk arayan ya da bilgi alışverişi yapmak isteyenler için genel forum siteleri harika bir başlangıç noktasıdır. Geniş bir kullanıcı kitlesine hitap eden Türkçe forumlar, herkesin ilgisini çekecek konularla doludur. Siz de bu platformlara katılarak, kendi ilgi alanlarınıza uygun başlıklarda sohbetlere katılabilir ve katkıda bulunabilirsiniz. 

Not : Lütfen Çekim Paylaşım Forumları için sitemizi kullanmayın.