Guest User

Untitled

a guest
Jan 9th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <cstdlib>
  4. #include <conio.h>
  5. #include <time.h>
  6.  
  7. using namespace std;
  8. const int nr_kerk=1000000;
  9. struct peme_nyje {
  10. char info;
  11. peme_nyje *majte;
  12. peme_nyje *djathte;
  13. };
  14.  
  15. peme_nyje *rrenja;
  16. bool ugjet;
  17. char celes;
  18.  
  19. clock_t startTime, stopTime=0;
  20.  
  21. void start(){
  22. startTime=clock();
  23. }
  24.  
  25. void stop(){
  26. stopTime=clock();
  27. }
  28.  
  29. clock_t interval(){
  30. return stopTime-startTime;
  31. }
  32.  
  33. void insert (char vl, peme_nyje * &p)
  34. {
  35. if (p==NULL){
  36. p= new peme_nyje;
  37. p->info=vl;
  38. p->majte=NULL;
  39. p->djathte=NULL;
  40. }
  41. else
  42. if (vl<=p->info)
  43. insert(vl,p->majte);
  44. else
  45. insert(vl,p->djathte);
  46. }
  47.  
  48. void pararendore(peme_nyje *t )
  49. {
  50. if (t !=NULL)
  51.  
  52. {
  53. cout<< t->info ;
  54. pararendore( t->majte );
  55. pararendore( t->djathte );
  56. }
  57. }
  58.  
  59. void nderrendore(peme_nyje *t)
  60. {
  61. if (t !=NULL)
  62. {
  63. nderrendore( t->majte );
  64. cout<< t->info;
  65. nderrendore( t->djathte );
  66. }
  67. }
  68.  
  69. void pasrendore(peme_nyje *t)
  70. {
  71. if (t !=NULL)
  72. {
  73. pasrendore( t->majte );
  74. pasrendore( t->djathte );
  75. cout<< t->info;
  76. }
  77. }
  78.  
  79.  
  80. void kerko(char celes, bool &ugjet,peme_nyje *t )
  81. {
  82. if ((t!=NULL) && (!ugjet))
  83. {
  84. if (celes == t->info)
  85. ugjet = true;
  86. else
  87. if (celes < t->info)
  88. kerko(celes, ugjet, t->majte);
  89. else
  90. kerko(celes, ugjet, t->djathte);
  91. }
  92. }
  93.  
  94.  
  95. int numero_nyje( peme_nyje *&t)
  96. {
  97.  
  98. if ( t==NULL)
  99. return 0;
  100. else
  101. return numero_nyje(t->majte)+1+numero_nyje(t->djathte);
  102. }
  103.  
  104. int numero_gjethe(peme_nyje *&t)
  105. {
  106.  
  107. if (t==NULL)
  108. return 0;
  109. else
  110. if ((t->majte==NULL) && (t->djathte==NULL))
  111. return 1;
  112. else
  113. return numero_gjethe(t->majte)+numero_gjethe(t->djathte);
  114. }
  115.  
  116. int lartesia(peme_nyje *p)
  117. {
  118. int l,majte_l,djathte_l;
  119. l=majte_l=djathte_l=0;
  120. if(p->majte!=NULL)
  121. majte_l=(1+lartesia(p->majte));
  122. else if(p->djathte!=NULL)
  123. djathte_l=(1+lartesia(p->djathte));
  124. l=majte_l>djathte_l?majte_l:djathte_l;
  125. return(l);
  126. }
  127.  
  128.  
  129. int main(){
  130.  
  131. char vl;
  132. int zgjedhje;
  133. int i=0;
  134. double t1, t2;
  135. char c[] = "DAETUIOPAQ";//var qe mban sekuencen e karaktereve ku secili karakter perben vleren e nje kulmi te caktuar
  136.  
  137. cout<<"\n\nKrijimi i nje peme binare..................\n";
  138. rrenja=NULL;
  139. // insert('A',rrenja);
  140. // insert('C',rrenja);
  141. // insert('B',rrenja);
  142. // insert('G',rrenja);
  143. // insert('E',rrenja);
  144. do
  145. {
  146. cout<<"\n 1. Inserto nyje";
  147. cout<<"\n 2. Afisho lartesine e pemes";
  148. cout<<"\n 3. Bredhje ParaRendore";
  149. cout<<"\n 4. Bredhje NderRendore";
  150. cout<<"\n 5. Bredhje PasRendore";
  151. cout<<"\n 6. Afisho numrin e nyjeve";
  152. cout<<"\n 7. Afisho numrin e gjetheve";
  153. cout<<"\n 8. Kerko nje nyje";
  154. cout<<"\n 9. Dalje nga programi";
  155. cout<<"\n\n Jepni nje nga opsionet e mesiperme............_ ";
  156. cin>>zgjedhje;
  157. switch(zgjedhje)
  158. {
  159. case 1:
  160. system("CLS");
  161. while(c[i]!='\0')
  162. {
  163. vl=c[i];
  164. i++;
  165. insert(vl,rrenja);
  166. }
  167. break;
  168. case 2:
  169. system("CLS");
  170. cout<<"\n\n Lartesia e pemes:= "<<lartesia(rrenja);
  171. cout<<endl;
  172. break;
  173. case 3:
  174. system("CLS");
  175. cout<<"\n\n Bredhje ParaRendore : \n\n\n\n\t\t";
  176. pararendore(rrenja);
  177. cout<<endl;
  178. break;
  179. case 4:
  180. system("CLS");
  181. cout<<"\n\n Bredhje NderRendore :\n\n\n\n\t\t";
  182. nderrendore( rrenja );
  183. cout<<endl;
  184. break;
  185. case 5:
  186. system("CLS");
  187. cout<<"\n\n Bredhje PasRendore :\n\n\n\n\t\t";
  188. pasrendore(rrenja);
  189. cout<<endl;
  190. break;
  191. case 6:
  192. system("CLS");
  193. cout<<"Numri i nyjeve: \n";
  194. cout<<numero_nyje(rrenja);
  195. cout<<endl;
  196. start();
  197. for(int i=0; i<nr_kerk; i++){
  198. numero_nyje(rrenja);
  199. }
  200. stop();
  201. t1=interval()/double(10*nr_kerk);
  202. cout<<"Koha: "<<t1;
  203. cout<<endl;
  204. break;
  205. case 7:
  206. system("CLS");
  207. cout<<"Numri i gjetheve: \n";
  208. cout<<numero_gjethe(rrenja);
  209. cout<<endl;
  210. start();
  211. for(int i=0; i<nr_kerk; i++){
  212. numero_gjethe(rrenja);
  213. }
  214. stop();
  215. t2=interval()/double(10*nr_kerk);
  216. cout<<"Koha: "<<t2;
  217. cout<<endl;
  218. break;
  219. case 8:
  220. system("CLS");
  221. cout<<"Shkruani nyjen qe kerkoni (nje shkronje)";
  222. ugjet = false;
  223. cin>>celes;
  224. kerko( celes, ugjet, rrenja);
  225. if (ugjet)
  226. cout<<celes<< " u gjet";
  227. else
  228. cout<<celes<< " nuk u gjet.";
  229. cout<<endl;
  230. break;
  231. case 9:
  232. exit(0);
  233. break;
  234. default:
  235. cout<<"\n\n Zgjedhje jo e sakte !!!!!!!!!!!!!!!!!!!!!";
  236. cout<<endl;
  237. break;
  238. }
  239. }while(zgjedhje!=9);
  240.  
  241.  
  242.  
  243. return 0;
  244.  
  245.  
  246. }
Advertisement
Add Comment
Please, Sign In to add comment