#750. 函数调用栈模拟

函数调用栈模拟

题目描述

为了理解编译原理、程序执行流程、递归调用等概念,对程序运行时 函数调用与返回机制简化模拟,小张需要这样一个程序:该程序模拟了一个 函数调用栈(Call Stack)的基本行为,具体包括以下两个操作: 1、call:表示调用一个函数,将该函数的名称和返回地址压入栈中; 2、return:表示从当前函数返回,从栈顶弹出最近调用的函数,并模拟返回到该函数调用者; 请你帮助他完成此任务。

输入格式

使用call+函数名称+返回地址格式输出需要调用的函数,使用return从当前函数返回。

输出格式

输出执行call与return命令后的结果

样例

输入样例 1

call funcA 100
call funcB 50
return
return

输出样例 1

调用函数: funcA
调用函数: funcB
返回到函数: funcB
返回到函数: funcA

输入样例 2

call main 0
return

输出样例 2

调用函数: main
返回到函数: main

输入样例 3

call A 10
call B 20
return
return

输出样例 3

调用函数: A
调用函数: B
返回到函数: B
返回到函数: A

提示

样例解释:先调用 funcA,再调用 funcB,调用栈为 [funcA, funcB] 第一次 return弹出 funcB,返回到它 第二次 return弹出 funcA,返回到它