C ++ تنفيذ شجرة AVL ، شجرة البحث الثنائية التوازن الذاتي. يتضمن الكود الوظائف التالية: أدخل وحذف والبحث والطباعة. إنه يعمل بكامل طاقته وذات جيد.
شجرة AVL عبارة عن شجرة بحث ثنائية متوازنة ذاتية حيث يختلف ارتفاع الطفل الفرعي لكل عقدة على الأكثر. يوفر هذا التنفيذ طرقًا فعالة لإدخال عناصر وحذفها والبحث والطباعة داخل الشجرة.
تتيح لك وظيفة insert إضافة قيمة جديدة إلى شجرة AVL مع الحفاظ على خاصيةها المتوازنة.
// Function
Node * insert (Node *node, int key);
// Example
AVLTree.insert(AVLTree.root, 19 ); تزيل دالة deleteNode قيمة من شجرة AVL ، إذا كانت موجودة. تضمن هذه العملية أيضًا أن تظل الشجرة متوازنة. إذا تم العثور على القيمة وإزالتها ، يتم ضبط هيكل الشجرة وفقًا لذلك.
// Function
Node * deleteNode (Node *root, int key);
// Example
AVLTree.deleteNode(AVLTree.root, 16 ); تجد وظيفة search قيمة في شجرة AVL وتطبع موقعها الحالي والوالدين والأطفال (إن وجد). إذا كانت القيمة في الجذر ، فستشير إلى ذلك.
// Function
static void search (Node *root, int key);
// Example
Tree::search (AVLTree.root, 32 );
تقوم وظيفة printTree بإخراج عناصر شجرة AVL بالترتيب المصنفة.
// Function
void printTree (Node *root, int space);
// Example
AVLTree.printTree(AVLTree.root, 0 );