首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

遞迴逆序輸出字元:堆疊機制圖解與實作

     編輯:關於C語言

題目

輸入 5 個字元,利用遞迴以相反順序輸出。

核心程式碼

#include <stdio.h>

void palin(int n) {
    char current = getchar();
    if (n != 1) palin(n - 1);
    putchar(current);
}

int main(void) {
    palin(5);
    putchar('\n');
    return 0;
}

執行流程圖解

遞迴呼叫堆疊圖

  1. 遞迴向下:依序讀入字元,保存在各層堆疊框架的 current 區域變數
  2. 基底條件 n==1 觸發回溯
  3. 遞迴回溯:依序 putchar,實現後進先出(LIFO)逆序效果

關鍵點

  • 區域變數 current 隨堆疊框架獨立儲存,互不干擾
  • 遞迴深度 = 輸入字元數,注意堆疊溢位風險
  • 等價於隱式堆疊,亦可用顯式陣列模擬

擴充應用

  • 字串反轉
  • 括號匹配檢查
  • 迷宮回溯、八皇后等 DFS 問題
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved