搜索链表最后一个结点并打印其数值 template <class Type> void Print( ListNode<Type>*)i if(f->ink=- NULL cout <<f->data < endl else Print(f->link ) 递归找链尾 Lao+a+a3+an
搜索链表最后一个结点并打印其数值 template <class Type> void Print ( ListNode<Type> *f ) { if ( f ->link == NULL ) cout << f ->data << endl; else Print ( f ->link ); } f f f f f a0 a1 a2 a3 a4 递归找链尾
在链表中寻找等于给定值的结点并打印 其数值 template <class Type> void Print( ListNode<Type>*f, Type&x)t if(f= NULL if (f-> data ==X cout<<f-> data < end; else Print(f->link, x); 递归找含值的结点 f-十xA f f
在链表中寻找等于给定值的结点并打印 其数值 template <class Type> void Print ( ListNode<Type> *f, Type& x ) { if ( f != NULL ) if ( f -> data == x ) cout << f -> data << endl; else Print ( f -> link, x ); } f f f f 递归找含x值的结点 x
问题的解法是递归的 例如,汉诺塔( Tower of hanoi)问题的解法: 如果n=1,则将这一个盘子直接从A柱 移到C柱上。否则,执行以下三步: ①用C柱做过渡,将A柱上的(n-1)个 盘子移到B柱上: ②将A柱上最后一个盘子直接移到C柱 上 ③用A柱做过渡,将B柱上的(m-1)个 盘子移到C柱上
问题的解法是递归的 例如,汉诺塔(Tower of Hanoi)问题的解法: 如果 n = 1,则将这一个盘子直接从 A 柱 移到 C 柱上。否则,执行以下三步: ① 用 C 柱做过渡,将 A 柱上的 (n-1) 个 盘子移到 B 柱上: ② 将 A 柱上最后一个盘子直接移到 C 柱 上; ③ 用 A 柱做过渡,将 B 柱上的 (n-1) 个 盘子移到 C 柱上
A B A B A B B
#include <iostream. h> #include strclass. h void Hanoi (int n, String A, String B, String C)i /解决汉诺塔问题的算法 if(n-1) cout<<move<<a<<to <<C<< endl else( Hanoi(n-1,A, C,B); cout << move <<a<< to <<c << endl Hanoi(n-1,B,A,C);
#include <iostream.h> #include "strclass.h” void Hanoi (int n, String A, String B, String C) { //解决汉诺塔问题的算法 if ( n == 1 ) cout << " move " << A << " to " << C << endl; else { Hanoi ( n-1, A, C, B ); cout << " move " << A << " to " << C << endl; Hanoi ( n-1, B, A, C ); } }