Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct nod
- {
- int info;
- nod *urm;
- };
- nod *varf,*prim,*ultim;
- int n;
- int stiva_vida(nod *varf)
- {
- if(varf==NULL)
- return 1;
- else
- return 0;
- }
- int coada_vida(nod *prim)
- {
- if(prim==NULL)
- return 1;
- else
- return 0;
- }
- void Push(nod *&varf,int x)
- {
- nod *p;
- p=new nod;
- p->info=x;
- p->urm=varf;
- varf=p;
- }
- int Top(nod *varf)
- {
- nod *p;
- p=varf;
- return p->info;
- }
- int Top2(nod *prim)
- {
- nod *p;
- p=prim;
- return p->info;
- }
- void Pop(nod *&varf)
- {
- nod *q;
- q=varf;
- varf=varf->urm;
- delete q;
- }
- void Add(nod *&ultim,int x)
- {
- nod *p;
- p=new nod;
- p->info=x;
- p->urm=NULL;
- ultim->urm=p;
- ultim=p;
- }
- void Delete(nod *&prim)
- {
- nod *q;
- q=prim;
- prim=prim->urm;
- delete q;
- }
- /*void Extragere(nod *&varf)
- {
- while(stiva_vida(varf)==0)
- {
- cout<<Top(varf)<<" ";
- Pop(varf);
- }
- }
- */
- void Creare()
- {
- prim=new nod;
- prim->info=n%10;
- prim->urm=NULL;
- ultim=prim;
- n=n/10;
- while(n!=0)
- {
- Add(ultim,n%10);
- n=n/10;
- }
- }
- int Verifica()
- {
- while((stiva_vida(varf)==0)&&(coada_vida(prim)==0))
- if(Top(varf)==Top2(prim))
- {
- Pop(varf);
- Delete(prim) ;
- }
- else
- return 0;
- if((stiva_vida(varf)==1)&&(coada_vida(prim)==1))
- return 1;
- }
- int main()
- {
- nod *p;
- int i=1,cn;
- cin>>n;
- cn=n;
- // Adaugam cifrele lui n in coada
- Creare();
- // Adaugam cifrele lui n in stiva
- n=cn;
- while(n!=0)
- {
- Push(varf,n%10);
- n=n/10;
- }
- p=varf;
- while(p!=NULL)
- {cout<<Top(p)<<" ";
- p=p->urm;
- }
- cout<<endl;
- p=prim;
- while(p!=NULL)
- {
- cout<<Top2(p)<<" ";
- p=p->urm;
- }
- cout<<endl;
- if(Verifica()==1)
- cout<<"Nr este palindrom";
- else
- cout<<"Nr nu este palindrom";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement