这个数据结构题……求大神

有n个字符的字符串,判断字符串是否回文。 如: abcba和abccba都是回文;实验要求:
1.将输入的字符串放在单链表栈中;
2. 利用栈的入栈和出栈完成是否回文判断;
3. 应提供栈的基本操作,如栈的初始化、销毁、判断是否栈空等;
怎么用c++实现呢?

首先建立一个链表用来存放字符串,再建立一个链表用来模拟栈,并且把之前链表中的内容放入栈中,因为栈是先进后出的,所以拿存放字符串的链表的头数据和栈的尾数据进行一一比较,如果有一个不相等那么这个字符串就不是回文串,销毁和初始化这些都是使用链表必然用到的,就不多说了

假设你已经实现了堆栈(如果这个有困难,可以Google例子程序),那么实现的思路是:
for (int i = 0; i < (strlen(s) + 1) / 2; i++)
stack.Push(s[i]);
bool b = true;
for (int i = (strlen(s) + 1) / 2 - 1; i < strlen(s); i++)
{
if (stack.Pop != s[i]) { b = false; break; }
}
cout << b ? "是" : "不是";