Advertisement
Guest User

CirKus

a guest
May 23rd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.09 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include<stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. struct cnode
  7. {
  8.     int value;
  9.     struct cnode *next;
  10. };
  11.  
  12. struct cnode *head = NULL;
  13.  
  14. ins(int newVal) {
  15.     struct cnode *tmp = head;
  16.     struct cnode *new = (struct cnode*)malloc(sizeof(struct cnode));
  17.  
  18.     new->value = newVal;
  19.     if (head == NULL) {
  20.         new->next = new;
  21.         head = new;
  22.         return;
  23.     }
  24.  
  25.     while (tmp->next != head) {
  26.  
  27.         tmp = tmp->next;
  28.  
  29.     }
  30.  
  31.     tmp->next = new;
  32.     new->next = head;
  33.     head = new;
  34.  
  35.  
  36. }
  37.  
  38. delay(int millis) {
  39.  
  40.     clock_t startTime = clock();
  41.     while (clock() < startTime + millis);
  42.  
  43. }
  44.  
  45. ptN() {
  46.     char cr = 146;
  47.  
  48.     if (head == NULL) {
  49.  
  50.         printf("(empty list)  %c  \n", cr);
  51.  
  52.         return;
  53.     }
  54.  
  55.  
  56.     struct cnode *tmp=head;
  57.    
  58.     do {
  59.        
  60.         printf("[%d] ", tmp->value);
  61.         tmp = tmp->next;
  62.         delay(30);
  63.  
  64.  
  65.     } while (tmp!=head);
  66.         printf("\n");
  67. }
  68.  
  69. sorta() {
  70.     struct cnode *tmp = head;
  71.     struct cnode *tmp2 = head->next;
  72.     int aux;
  73.  
  74.         do {
  75.  
  76.            
  77.             do {
  78.  
  79.                 if (tmp2->value > tmp->value) {
  80.                     aux = tmp->value;
  81.                     tmp->value = tmp2->value;
  82.                     tmp2->value = aux;
  83.                 }
  84.  
  85.                 tmp2 = tmp2->next;
  86.  
  87.  
  88.  
  89.             } while (tmp2 != head);
  90.  
  91.             tmp = tmp->next;
  92.         } while (tmp != head);
  93.    
  94. }
  95.  
  96. del() {
  97.     struct cnode *tmp = head;
  98.     struct cnode *dell;
  99.     dell = head;
  100.    
  101.    
  102.  
  103.     while (tmp->next != head) {
  104.  
  105.         tmp = tmp->next;
  106.  
  107.     }
  108.     head = head->next;
  109.     tmp->next = head;
  110.  
  111.     free(dell);
  112.  
  113. }
  114.  
  115. insR(int val) {
  116.     time_t t;
  117.     srand(time(NULL));
  118.     while (val) {
  119.         val--;
  120.         ins(rand() % 500);
  121.     }
  122. }
  123.  
  124. clearL() {
  125.  
  126.     if (head == NULL) {
  127.         printf("lista je prazna!\n");
  128.         return;
  129.     }
  130.     struct cnode *tmp = head;
  131.     struct cnode *aux = (struct cnode*)malloc(sizeof(struct cnode));
  132.  
  133.     while (tmp->next != head) {
  134.  
  135.         tmp = tmp->next;
  136.  
  137.     }
  138.  
  139.     tmp->next = NULL;
  140.  
  141.     while (head->next!=NULL) {
  142.  
  143.    
  144.  
  145.         aux = head;
  146.        
  147.         head = head->next;
  148.         free(aux);
  149.     }
  150.  
  151.  
  152.  
  153.     head = NULL;
  154.  
  155.  
  156. }
  157.  
  158. main() {
  159.  
  160.    
  161.  
  162.     ins(9);
  163.     ins(5);
  164.     ins(342);
  165.     ins(32);
  166.     ins(46);
  167.     //sorta();
  168.     ptN();
  169.     del();
  170.     ptN();
  171.     ins(55);
  172.     ptN();
  173.     insR(30);
  174.     ptN();
  175.     clearL();
  176.     ptN();
  177.     system("pause");
  178.  
  179.  
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement