Binary search tree rneği istiyorsun anladığım kadarıyla. En doğal uygulaması zyinelemeli fonksiyonlar ile, ancak dngüsel de yazılabilir aynı kolaylıkta. Biraz incelersen anlayacağını düşünüyorum. Yoketme fonksiyonunu yazmadım sadece ekleyen ve bulan fonksiyonları yazdım, ayrıca sadece bu değil tüm veri yapıları için handle yntemi uygulamak daha kullanışlıdır bu şekilde tek pointer üzerinde işlem yapmaktan ancak en kısa kod en kolay anlaşılan koddur diyerek byle yazdım kolay gelsin. Biraz açıklama, ncelikle binary search treede eleman eklenirken kullanılan tek kural küçük olan eleman sola, büyük olan eleman sağa eklenir, mesela mevcut node 75 ise, 77 sağa, 65 sola eklenir. her node ayrıca sağ ve sol nodu gsteren bir pointer a sahiptir, mesela bir node un sağ pointer ı NULL ise, orada eleman yok demektir, eleman olmayan yndeki pointer NULL olur kısacası. Treenin herhangi bir parçasını alırsan o da bir treedir, yani her hangi bir node u root kabul edersen, alt tree yi elde edersin. bu yüzden ekleme ve arama işlemleri hep zyineleme ile yapılır, sonraki fonksiyona alt tree yollanır, alan fonksiyon tabiki bunu root olarak bilir ve işlem yapar. #include <stdio. h> #include <stdlib. h> typedef struct node Node; Node insert { if if else if else return treep; } Node lookup { if if else if else } Node newnode { Node newp = calloc(1, sizeof ; if newp->value = value; newp->name = name; return newp; } int main { Node tree = NULL; Node testNode = NULL; tree = insert(tree, newnode(77, "root")); insert(tree, newnode(55, "dogan")); insert(tree, newnode(66, "ozgur")); insert(tree, newnode(88, "cancan")); insert(tree, newnode(99, "ahmet")); testNode = lookup(tree, 55); if getchar ; return 0; } Tugberk tarafından 03/Oca/13 21:29 tarihinde düzenlenmiştir

http://www.erengencturk.com.tr/files/trees. jar veri yapılarında iyiişime yaramıştı mantığını anlama konusunda. .

Hocalar merhaba, Binary treeler hakkinda duzgun bir kaynak verebilir misiniz?Googledan arastirdim genellikle OOP mantigiyla anlatilmis, bana struct haliyle lazim. Nasil yeni bir node eklenir, nasil bir node bulunur vs bunlar gerekiyor. Pragmatism&Realism