#include <iostream>
using namespace std;
class LinkNode
{
public:
LinkNode* ltr ,*rtr;
char data;
};
class LinkList
{
public:
LinkNode* head , *rear;
};
class Solution:public LinkNode,public LinkList
{
int n;
public:
Solution(){}
LinkNode* creat(int n);
bool palindromeNumber(LinkNode*head,LinkNode *rear);
};
LinkNode* Solution::creat(int n)
{
int i;
LinkNode* tmp=new LinkNode;
head=rear=tmp;
tmp->ltr=NULL;
cin>>tmp->data;
tmp->rtr=NULL;
for(i=1 ; i<n ; ++i)
{
tmp=new LinkNode;
tmp->ltr=rear;
rear->rtr=tmp;
rear=tmp;
cin>>tmp->data;
tmp->rtr=NULL;
}
return rear;
}
bool Solution::palindromeNumber(LinkNode*head,LinkNode *rear)
{
while(rear!=head)
{
if(head->data!=rear->data)
return false;
head=head->rtr;
rear=rear->ltr;
}
return true;
}
int main()
{
int b;cin>>b;
Solution a;
a.creat(b);
cout<<a.palindromeNumber(a.head,a.rear)<<endl;
}
C++用双链表检测回文数(palindrome number)
最新推荐文章于 2021-10-25 14:06:38 发布