C++的问题关于链栈和队列

编写一个程序,实现链栈,要求链表的尾部是栈顶,并且push、pop达到O(1)的时间复杂度。然后输入一个字符串,以#结束,要求将其中的数字字符放在其它字符前面输出,并且数字字符及其它字符都以逆序输出。
比如输入:3aAb7c#
输出为:73cbAa