原题:设单链表中存放着n个字符,设计算法并判断字符是否中心对称,如"xyzzyx"是中心对称的。
分析:可先将字符串中的全部字符进栈,然后再将栈中的字符逐个与链表中的字符进行比较,如全部相等,则为中心对称。
/*该程序由文件strfile.txt中的字符串读出的字符此生成单链表,后判断单链表的字符串是否中心对称(即判断文件中的字符串是否中心对称)*/
#include<iostream>
#include<fstream.h>
#define ElemType char
typedef struct LNode
{//链表结点结构的定义
ElemType data;
struct LNode *next;
}LNode,*LinkList;
typedef struct LSNode
{
char data;//栈结点的数据域
struct LSNode *prior;//指向前驱的指针
struct LSNode *next;//指向下一结点的指针
}LSNode,*LStack;
LStack base,top;//定义栈底与栈顶指针,全局变量
//LSNode *base,*top;//和上行等价的另一种定义方式
int InitLinkStack(LStack &LS)
{//栈初始化,完成初始化时栈中没有结点
LS=(LStack)malloc(sizeof(LSNode));
LS->data='*';LS->next=