72 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Trees | ||
|  | localeTitle: الأشجار | ||
|  | --- | ||
|  | # الأشجار
 | ||
|  | 
 | ||
|  | يمكن تعريف بنية بيانات الأشجار بشكل متكرر (محلي) كمجموعة من العقد (تبدأ من عقدة جذر) ، حيث تكون كل عقدة عبارة عن بنية بيانات تتكون من قيمة ، مع قائمة مراجع للعقد ("الأطفال") ، مع القيود التي لا تتكرر أي إشارة ، ولا شيء يشير إلى الجذر. تسمى الشجرة بدون العقد بالشجرة الخالية أو الفارغة. | ||
|  | 
 | ||
|  | الشجرة الثنائية هي بنية بيانات غير خطية تتكون من العقد ، حيث تحتوي كل عقدة على المكونات الثلاثة التالية: | ||
|  | 
 | ||
|  | **عنصر البيانات** : يخزن أي نوع من البيانات في العقدة **مؤشر يسار** : **يشير** إلى الشجرة الفرعية على الجانب الأيسر من العقدة **المؤشر الأيمن** : **يشير** إلى الشجرة الفرعية على الجانب الأيمن من العقدة كما يوحي الاسم ، يخزن عنصر البيانات أي نوع من البيانات في العقدة. تشير مؤشرات اليسار واليمين إلى الأشجار الثنائية على الجانب الأيمن والأيسر من العقدة على التوالي. | ||
|  | 
 | ||
|  | إذا كانت الشجرة فارغة ، يتم تمثيلها بمؤشر فارغ. | ||
|  | 
 | ||
|  | ## المصطلحات المستخدمة في الأشجار:
 | ||
|  | 
 | ||
|  | **الجذر** : العقدة العليا في شجرة. | ||
|  | 
 | ||
|  | **الطفل** : عقدة متصلة مباشرة بعقدة أخرى عند الانتقال بعيدًا عن الجذر. | ||
|  | 
 | ||
|  | **الوالد** : الفكرة العكسية للطفل. | ||
|  | 
 | ||
|  | **الأشقاء** : مجموعة من العقد مع نفس الوالد. | ||
|  | 
 | ||
|  | **السليل** : يمكن الوصول إلى العقدة من خلال إجراء متكرر من الوالد إلى الطفل. | ||
|  | 
 | ||
|  | **السلف** : يمكن الوصول إلى العقدة من خلال إجراء متكرر من الطفل إلى الوالد. | ||
|  | 
 | ||
|  | **الفرع** (العقدة الداخلية): عقدة لشجرة لها عقد فرعية. | ||
|  | 
 | ||
|  | **ورقة** (أقل شيوعا تسمى العقدة الخارجية): عقدة بدون أطفال. | ||
|  | 
 | ||
|  | **الدرجة العلمية** : عدد الألواح الفرعية لعقدة. | ||
|  | 
 | ||
|  | **الحافة** : الاتصال بين عقدة واحدة وأخرى. | ||
|  | 
 | ||
|  | **المسار** : تسلسل من العقد والحواف التي تربط العقدة مع سليل. | ||
|  | 
 | ||
|  | **المستوى** : يتم تعريف مستوى العقدة بواسطة 1 + (عدد الاتصالات بين العقدة والجذر). | ||
|  | 
 | ||
|  | **ارتفاع الشجرة** : ارتفاع الشجرة هو ارتفاع العقدة الجذرية الخاصة بها. | ||
|  | 
 | ||
|  | **العمق** : عمق العقدة هو عدد الحواف من العقدة الجذرية للشجرة إلى العقدة. | ||
|  | 
 | ||
|  | **غابة** : الغابة هي مجموعة من الأشجار المنفصلة n ≥ 0. | ||
|  | 
 | ||
|  | ### بعض أنواع الأشجار الشائعة:
 | ||
|  | 
 | ||
|  | *   شجرة ثنائية | ||
|  | *   شجرة البحث الثنائية | ||
|  | *   شجرة AVL | ||
|  | *   أحمر أسود شجرة | ||
|  | *   شجرة Splay | ||
|  | *   شجرة هوفمان | ||
|  | 
 | ||
|  | ### الاستخدامات الشائعة
 | ||
|  | 
 | ||
|  | *   تمثل البيانات الهرمية | ||
|  | *   تخزين البيانات بطريقة تجعلها سهلة البحث | ||
|  | *   تمثل قوائم مرتبة من البيانات | ||
|  | *   خوارزميات التوجيه | ||
|  | 
 | ||
|  | ### رمز عقدة شجرة
 | ||
|  | 
 | ||
|  | \`\` \`c\_cpp العقدة الهيكلية { بيانات int؛ // عنصر البيانات العقدة الهيكلية \* اليسار ؛ // المؤشر إلى العقدة اليسرى العقدة الهيكلية \* // المؤشر إلى العقدة اليمنى }؛ | ||
|  | 
 | ||
|  | \`\` \` | ||
|  | 
 | ||
|  | #### معلومات اكثر:
 | ||
|  | 
 | ||
|  | *   [ملاحظات CMU الدرس](http://www.cs.cmu.edu/~clo/www/CMU/DataStructures/Lessons/lesson4_1.htm) | ||
|  | *   [ويكيبيديا](https://en.wikipedia.org/wiki/Tree_(data_structure)) |