पुनरावृत्ति अक्सर पुनरावृत्ति की तुलना में चीजों को देखने का एक अधिक प्राकृतिक तरीका है। उदाहरण के लिए, एक द्विआधारी पेड़ के इनवर्टर ट्रैवर्सल पर विचार करें: inorder(left); process(); inorder(right);
एक स्टैक को स्पष्ट रूप से बनाए रखने की तुलना में बहुत सरल है।
जब तक आप बहुत गहराई तक नहीं जाते (स्टैक को उड़ाना), तब तक संसाधन उपयोग में अंतर आमतौर पर तुच्छ होता है। इसके बारे में सामान्य रूप से चिंता न करें। साधारण कोड आमतौर पर हाथ से अनुकूलित कोड से बेहतर होता है, हालांकि अपवाद हैं। राइट आम तौर पर तेजी से बेहतर है।
किसी भी पुनरावर्ती एल्गोरिथ्म को पुनरावृत्त एल्गोरिथ्म के रूप में व्यक्त किया जा सकता है, लेकिन आपको एक स्पष्ट स्टैक रखने की आवश्यकता हो सकती है (कॉल स्टैक के अनुसार जो अनुमानित रूप से नियंत्रित किया जाता है)। आखिरकार, यदि आप एक पुनरावर्ती फ़ंक्शन को संकलित करते हैं, तो आपको कुछ मिलता है जो फ़ंक्शन के माध्यम से स्टैक और लूपिंग में हेरफेर करने पर निर्भर करता है, और यह पुनरावृत्ति है।
टेल-पुनरावर्ती कार्यों को आसानी से छोरों में अनुवादित किया जा सकता है, और स्टैक की आवश्यकता नहीं है, लेकिन यह एक विशेष मामला है।