Мазмуну:

Рекурсияны колдонуу менен байланышкан тизме аркылуу өтүңүз - Java: 12 кадам
Рекурсияны колдонуу менен байланышкан тизме аркылуу өтүңүз - Java: 12 кадам

Video: Рекурсияны колдонуу менен байланышкан тизме аркылуу өтүңүз - Java: 12 кадам

Video: Рекурсияны колдонуу менен байланышкан тизме аркылуу өтүңүз - Java: 12 кадам
Video: Рекурсия. 9 класс. 2024, Ноябрь
Anonim
Рекурсияны колдонуу менен байланышкан тизме аркылуу өтүңүз - Java
Рекурсияны колдонуу менен байланышкан тизме аркылуу өтүңүз - Java

Кош келиңиз жана сизге рекурсивдүү функцияны кантип түзүүнү көрсөтө турган бул көрсөтмө топтомун тандаганыңыз үчүн рахмат. Баштала турган кадамдарды түшүнүү үчүн Java боюнча негизги билим керек.

Жалпысынан алганда, бул 12 кадамдык процесс 15 мүнөттөн ашпашы керек. Бир мүнөттөн ашык убакыт талап кылынуучу жалгыз кадам - бул колдонуучудан өтүү үчүн тесттин үлгүсүн түзүүнү суранган 4 -кадам. Колдонула турган убакыттын өлчөмү колдонуучунун колунда, бирок мен 3 мүнөттөн ашык эмес убакыт кетет деп эсептейм.

Сиздин компьютериңизге эмне керек: Менин тестирлөө файлы (биз кодду кошобуз). Сиз тандаган java IDE (бул үчүн drjava колдонобуз).

1 -кадам: Биринчи кадам: Java IDE тандооңузду ачыңыз

Биринчи кадам: Java IDE тандооңузду ачыңыз
Биринчи кадам: Java IDE тандооңузду ачыңыз

Бул көрсөтмө топтому үчүн, drjava колдонулат. Жаңы жаңы файл ачык.

2 -кадам: Экинчи кадам: Менин.txt файлымды жүктөп ачыңыз

Бул текстте биз иштей турган "Node" классы, ошондой эле биз жазган код ойдогудай иштээрин текшерүү үчүн кээ бир тесттер камтылган. Бул жерден жүктөп алыңыз

3 -кадам: Үчүнчү кадам:.txt файлынан IDEге көчүрүү жана чаптоо

Үчүнчү кадам:.txt файлынан IDEге көчүрүү жана чаптоо
Үчүнчү кадам:.txt файлынан IDEге көчүрүү жана чаптоо

Текстти файлымдан көчүрүп, өзүңүз ачкан java IDEге чаптаңыз.

4 -кадам: Төртүнчү кадам: Тест түзүү

Төртүнчү кадам: Тест түзүү
Төртүнчү кадам: Тест түзүү

Бул биздин рекурсивдүү функциябыздын туура иштээрин текшерет. Берилген мисал тесттердин форматын ээрчиңиз.

5 -кадам: Бешинчи кадам: Рекурсивдүү функцияны түзүү

Бешинчи кадам: Рекурсивдүү функцияны түзүү
Бешинчи кадам: Рекурсивдүү функцияны түзүү

Кайсы жерде талап кылынса, төмөнкүлөрдү териңиз:

public int size () {}

6 -кадам: Алтынчы кадам: Рекурсивдүү жардамчы функциясын түзүү

Алтынчы кадам: Рекурсивдүү жардамчы функциясын түзүү
Алтынчы кадам: Рекурсивдүү жардамчы функциясын түзүү

Кайсы жерде талап кылынса, төмөнкүлөрдү териңиз:

коомдук статикалык int sizeH (Node x) {}

7 -кадам: Жетинчи кадам: Негизги рекурсивдүү функциядагы Helper Function чакыруу

Жетинчи кадам: Негизги рекурсивдүү функциядагы жардамчы функциясын чакыруу
Жетинчи кадам: Негизги рекурсивдүү функциядагы жардамчы функциясын чакыруу

Бул биздин функцияны байланышкан тизмеден башынан өткөрүүгө мүмкүнчүлүк берет.

Биз жазган функциялардын биринчисине төмөнкүлөрдү териңиз:

кайтаруу sizeH (биринчи);

8 -кадам: Сегизинчи кадам: Жардамчы функциясы үчүн базалык ишти түзүңүз

Сегизинчи кадам: Жардамчы функциясы үчүн базалык ишти түзүңүз
Сегизинчи кадам: Жардамчы функциясы үчүн базалык ишти түзүңүз

Ар бир рекурсивдүү функцияда аны токтотуунун жолу болушу керек. "Негизги окуя" бизге тизменин аягына жеткенден кийин өтүүнү токтотууга мүмкүнчүлүк берет.

"Жардамчы" функциясында төмөнкүлөрдү териңиз:

if (x == null) return 0;

9 -кадам: Тогузунчу кадам: "+1" кошуп, Жардамчы функциясына кайра чалыңыз

Тогузунчу кадам: "+1" кошуп, кайра жардамчы функциясын чакырыңыз
Тогузунчу кадам: "+1" кошуп, кайра жардамчы функциясын чакырыңыз

Биз рекурсивдүү функция барган ар бир түйүнгө бирден кошобуз.

"Жардамчы" функциясында төмөнкүлөрдү териңиз:

кайтаруу 1 + sizeH (x.next);

10 -кадам: Он кадам: Кодуңузду түзүңүз / сактаңыз

Программаны иштетүүдөн мурун кодду түзүү керек.

11 -кадам: Он биринчи кадам: Программаны иштетүү

Программаңызды иштетиңиз! Чыгуу эмне болгон? Эгер бир нерсе туура эмес болуп калса, артка карап, кодду так жана туура жерде киргизгениңизди текшериңиз.

12 -кадам: Он экинчи кадам: Куттуктайбыз

Он экинчи кадам: Куттуктайбыз!
Он экинчи кадам: Куттуктайбыз!

Эгерде бул сиздин акыркы чыгарылышыңыз болсо, анда сиз расмий түрдө шилтемеленген тизме аркылуу кайталануучу рекурсивдүү функцияны жаздыңыз.

Сунушталууда: