Advertisement
ElooEminem

Untitled

Apr 3rd, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <fstream>
  4. #include <time.h>
  5. using namespace std;
  6.  
  7. struct elem{
  8. int val; //wartosc elementu listy
  9. elem *next; //wskaznik na nastepny element listy
  10. };
  11.  
  12. void elem_add(struct elem *lista,int num){
  13. while(lista->next)
  14. if(num>lista->next->val) lista=lista->next;
  15. else break; //Po tej petli lista zawiera element za ktorym
  16. struct elem *add=new struct elem; //trzeba dodoac nowy element
  17. struct elem *tmp=lista->next;
  18. lista->next=add;
  19. add->next=tmp; //Zabawa w przestawianie adresow
  20. add->val=num;
  21. return;
  22. }
  23.  
  24. void elem_erase(struct elem *lista,int num){ //Lepiej podac wlasciwy num (0 ; n-1). else Acces violation murowany :)
  25. for(int i=0;i<num;i++) lista=lista->next; //Petla znajduje element,
  26. struct elem *tmp; //poprzedzajacy ten, ktory bedzie usuniety
  27. tmp=lista->next->next;
  28. delete lista->next; //Zabawa w przestawianie adresow
  29. lista->next=tmp;
  30. return;
  31. }
  32.  
  33. struct elem *lista_init(int n){
  34. struct elem *first;
  35. first=new struct elem;
  36. first->val=n;
  37. first->next=NULL;
  38. return first;
  39. }
  40.  
  41. void list_delete(struct elem *lista){
  42. struct elem *tmp;
  43. int i=0;
  44. while(lista){
  45. tmp=lista->next;
  46. delete lista;
  47. lista=tmp;
  48. }
  49. return;
  50. }
  51.  
  52. struct elem *elem_find(struct elem *lista,int n){
  53. lista=lista->next;
  54. while(lista&&lista->val!=n) lista=lista->next;
  55. return lista;
  56. }
  57.  
  58. int *dane(int n){
  59. int index1;
  60. int index2;
  61. int tmp;
  62. int *tab=new int[n];
  63. for(int i=0;i<n;i++) tab[i]=i;
  64. for(int i=0;i<n*10;i++){
  65. index1=rand()%n;
  66. index2=rand()%n;
  67. tmp=tab[index1];
  68. tab[index1]=tab[index2];
  69. tab[index2]=tmp;
  70. }
  71. return tab;
  72. }
  73.  
  74. int main(){
  75. struct elem *first;
  76. ofstream plik;
  77. plik.open(".\\elu.txt");
  78. plik.close();
  79. plik.open(".\\elu.txt",ios::out);
  80. int k;
  81. clock_t start;
  82. int *tab;
  83. int a[10];
  84. int b[10];
  85. int c[10];
  86. plik<<"SERIA DANYCH OX\n";
  87. for(int i=10000;i<=55000;i=i+5000) plik<<i<<" ";
  88. plik<<endl;
  89. for(int i=10000;i<=55000;i=i+5000){
  90. tab=dane(i);
  91. first=lista_init(-1);
  92.  
  93. start=clock();
  94. for(int j=0;j<i;j++) elem_add(first,tab[j]);
  95. a[k]=clock()-start;
  96.  
  97. start=clock();
  98. for(int j=0;j<i/10;j++) elem_find(first,tab[j]);
  99. b[k]=clock()-start;
  100.  
  101. start=clock();
  102. list_delete(first);
  103. c[k]=clock()-start;
  104.  
  105. k++;
  106. delete []tab;
  107. }
  108. plik<<"\nDODAWANIE ELEMENTOW DO LISTY (N)\n";
  109. for(int i=0;i<10;i++) plik<<a[i]<<" ";
  110. plik<<"\nWYSZUKIWANIE ELEMENTU W LISCIE (N)\n";
  111. for(int i=0;i<10;i++) plik<<b[i]<<" ";
  112. plik<<"\nUSUWANIE LISTY (N)\n";
  113. for(int i=0;i<10;i++) plik<<b[i]<<" ";
  114. return 0;
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement