bh.obsculta-music.at
معلومة

شجرة بها 12 فاكهة

شجرة بها 12 فاكهة



We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.


شجرة بها 12 فاكهة و 12 جذور.

ما أسهل طريقة لحساب عدد الثمار والجذور؟

أ:

كما لاحظتTitusC ، هناك الكثير من الأمثلة على ذلك على Google.

لمثالك الخاص ، استخدم الحل العودي لزيارة جميع العقد ومعرفة ما إذا كانت تحتوي على فاكهة وجذر.

عدد الفواكه (TreeNode & lt، Fruit & gt، node) {

إذا (node.children == فارغة)

العودة 1 ،

عدد المردودات (node.children.first ()) + 1 ،

}

// نفس المنطق ل countRoots

إذا كان لديك Java 8 و lambda ، يمكنك أيضًا إنشاء طريقة لذلك.

لم يتم اختباره ، لذلك قد يكون به بعض الأخطاء.

أ:

يجب أن تعمل هذه الطريقة ، ربما ليست أفضل طريقة ، لكنها تعمل:

شجرة فئة عامة {

فئة الفاكهة الثابتة الخاصة ، أدوات المقارنة & lt ، Fruit & gt ، {

اسم السلسلة العام ،

الفاكهة الدولية العامة

الفاكهة العامة (اسم السلسلة ، مؤشر الفاكهة int) {

this.name = name ،

this.fruitIndex = مؤشر الفاكهة ،

}

@تجاوز

مقارنة عامة مع (الفاكهة س) {

إذا (هذا. فهرس الفاكهة & lt ، o. فهرس الفاكهة)

عودة -1 ،

وإلا إذا (this.fruitIndex & gt، o.fruitIndex)

العودة 1 ،

آخر

العودة 0 ،

}

}

شجرة خاصة

قائمة خاصة & lt ، فواكه و GT ، فواكه ،

شجرة عامة (شجرة) {

this.tree = شجرة ،

this.fruits = new ArrayList & lt، & gt، ()،

}

عدد الفراغات العامة (الفاكهة الأم ، القائمة والعلامة التجارية ، الفاكهة و GT ، الأطفال) {

إذا (children.size () == 0)

إرجاع،

إذا (this.fruits.size () == 0) {

this.fruits.add (الوالدين) ،

} آخر {

int parentFruitIndex = this.fruits.indexOf (الأصل) ،

int targetFruitIndex = parentFruitIndex + 1 ،

إذا (targetFruitIndex & gt، children.size ())

targetFruitIndex = 0 ،

this.countFruits (children.get (targetFruitIndex)، children.subList (0، targetFruitIndex)) ،

}

}

public List & lt، Fruit & gt، getFruits () {

إعادة هذه الفاكهة ،

}

}

/**

* فئة مجردة تستخدم للمثال.

*/

فئة الملخصات العامة AbstractFruit {

/**

* اسم الثمرة.

*/

اسم السلسلة الخاص ،

/**

* لون الثمرة.

*/

لون خاص

/**

* ترجع اسم الثمرة.

*

* @ إرجاع اسم الفاكهة.

*/

سلسلة عامة getName () {

اسم العودة ،

}

/**

* يعيد لون الثمرة.

*

* @ إعادة لون الفاكهة.

*/

اللون العام getColor () {

لون الإرجاع ،

}

/**

* يحدد اسم هذه الفاكهة.

*

* @ param name الاسم الجديد للفاكهة.

*/

setName العامة الباطلة (اسم السلسلة) {

this.name = name ،

}

/**

* يضبط لون هذه الفاكهة.

*

*param لون الفاكهة الجديد.

*/

مجموعة فارغة عامة اللون (لون اللون) {

this.color = color،

}

}

العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {

الماسح s = الماسح الجديد (System.in) ،

HashMap & lt، String، Fruit & gt، food = new HashMap & lt، String، Fruit & gt، ()،

طعام [] فواكه = {

تفاحة جديدة ("Fruit 1"، Color.RED) ،

البرتقالي الجديد ("الفاكهة 2" ، Color.RED) ،

الموز الجديد ("الفاكهة 3" ، اللون. أحمر) ،

تفاحة جديدة ("Fruit 4"، Color.GREEN) ،

أورانج الجديدة ("الفاكهة 5" ، Color.RED) ،

أورانج الجديدة ("الفاكهة 6" ، Color.RED) ،

موزة جديدة ("Fruit 7"، Color.GREEN)

},

String [] names = {"Apple"، "Orange"، "Banana"}،

// أضف كل فاكهة إلى خريطة الطعام

لـ (int i = 0، i & lt، fruitArrays.length، i ++) {

إذا (! food.containsKey (أسماء [i])) {

food.put (أسماء [i] ، Apple جديد (أسماء [i] ، Color.RED)) ،

} آخر {

food.get (أسماء [i]). setColor (Color.RED) ،

}


شاهد الفيديو: شجرة بها كل أنواع الفواكه. ألوانها تخلب الفؤاد وتقطف من ثمارها ماشئت