Advertisement
frentzy

palindrom Liste

Mar 28th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. struct nod
  5. {
  6. int info;
  7. nod *urm;
  8. };
  9. nod *varf,*prim,*ultim;
  10. int n;
  11. int stiva_vida(nod *varf)
  12. {
  13. if(varf==NULL)
  14. return 1;
  15. else
  16. return 0;
  17. }
  18. int coada_vida(nod *prim)
  19. {
  20. if(prim==NULL)
  21. return 1;
  22. else
  23. return 0;
  24. }
  25. void Push(nod *&varf,int x)
  26. {
  27. nod *p;
  28. p=new nod;
  29. p->info=x;
  30. p->urm=varf;
  31. varf=p;
  32. }
  33. int Top(nod *varf)
  34. {
  35. nod *p;
  36. p=varf;
  37. return p->info;
  38. }
  39. int Top2(nod *prim)
  40. {
  41. nod *p;
  42. p=prim;
  43. return p->info;
  44. }
  45.  
  46. void Pop(nod *&varf)
  47. {
  48. nod *q;
  49. q=varf;
  50. varf=varf->urm;
  51. delete q;
  52. }
  53. void Add(nod *&ultim,int x)
  54. {
  55. nod *p;
  56. p=new nod;
  57. p->info=x;
  58. p->urm=NULL;
  59. ultim->urm=p;
  60. ultim=p;
  61. }
  62. void Delete(nod *&prim)
  63. {
  64. nod *q;
  65. q=prim;
  66. prim=prim->urm;
  67. delete q;
  68.  
  69. }
  70.  
  71.  
  72. /*void Extragere(nod *&varf)
  73. {
  74.  
  75. while(stiva_vida(varf)==0)
  76. {
  77. cout<<Top(varf)<<" ";
  78. Pop(varf);
  79. }
  80.  
  81. }
  82.  
  83. */
  84. void Creare()
  85. {
  86. prim=new nod;
  87. prim->info=n%10;
  88. prim->urm=NULL;
  89. ultim=prim;
  90. n=n/10;
  91. while(n!=0)
  92. {
  93. Add(ultim,n%10);
  94. n=n/10;
  95. }
  96. }
  97. int Verifica()
  98. {
  99. while((stiva_vida(varf)==0)&&(coada_vida(prim)==0))
  100.  
  101. if(Top(varf)==Top2(prim))
  102. {
  103. Pop(varf);
  104. Delete(prim) ;
  105. }
  106. else
  107. return 0;
  108.  
  109. if((stiva_vida(varf)==1)&&(coada_vida(prim)==1))
  110. return 1;
  111. }
  112.  
  113. int main()
  114. {
  115. nod *p;
  116. int i=1,cn;
  117. cin>>n;
  118. cn=n;
  119. // Adaugam cifrele lui n in coada
  120. Creare();
  121.  
  122. // Adaugam cifrele lui n in stiva
  123. n=cn;
  124. while(n!=0)
  125. {
  126. Push(varf,n%10);
  127. n=n/10;
  128. }
  129. p=varf;
  130. while(p!=NULL)
  131. {cout<<Top(p)<<" ";
  132. p=p->urm;
  133. }
  134. cout<<endl;
  135. p=prim;
  136. while(p!=NULL)
  137. {
  138. cout<<Top2(p)<<" ";
  139. p=p->urm;
  140.  
  141. }
  142. cout<<endl;
  143.  
  144. if(Verifica()==1)
  145. cout<<"Nr este palindrom";
  146. else
  147. cout<<"Nr nu este palindrom";
  148.  
  149.  
  150. return 0;
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement