Ben CS veya veri yapılarında bir arka plan yok. Ben manipülasyon ve bir veritabanı ile eşitleme için, bir modified preorder transversal tree depolayan bir PHP sınıfı yapmak istiyorum.
Temelde gibi verileri saklamak gerekir:
+-------------+----------------------+-----+-----+
| category_id | name | lft | rgt |
+-------------+----------------------+-----+-----+
| 1 | ELECTRONICS | 1 | 20 |
| 2 | TELEVISIONS | 2 | 9 |
| 3 | TUBE | 3 | 4 |
| 4 | LCD | 5 | 6 |
| 5 | PLASMA | 7 | 8 |
| 6 | PORTABLE ELECTRONICS | 10 | 19 |
| 7 | MP3 PLAYERS | 11 | 14 |
| 8 | FLASH | 12 | 13 |
| 9 | CD PLAYERS | 15 | 16 |
| 10 | 2 WAY RADIOS | 17 | 18 |
+-------------+----------------------+-----+-----+
Ben bir dizi kullanarak düşünüyordum, ancak hantal görünüyor. Bu gibi bir dizi bir dizi olsaydı: array( 'name'=> "PORTABLE ELECTRONICS", 'lft' => 10, 'rgt' = 19 )
, o zaman tekrar tekrar tüm sayılar, vb mevcut olduğundan emin olmak için o dizinin döngü hantal alacağı
PHP mevcut birkaç yeni veri yapıları var, ben bunlardan herhangi bana bir dizi üzerinden herhangi bir yarar elde olsaydı acaba?
- SplDoubly
- LinkedList
- SplStack
- SplQueue
- SplHeap
- SplMaxHeap
- SplMinHeap
- SplPriorityQueue
- SplFixedArray
- SplObjectStorage
Edit: Bu sınıf bir veritabanı tablosunda saklanan bir ağaca bir ağ geçidi olacak değildir. (Öyle olsaydı, ben sadece sınıfların bir sorgu olurdu.) Bu sadece bir stand-alone mmpt PHP veri yapısı bir tür.