Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1.  
  2.  
  3. static void setCursor(IteratorG it, Node tailToSet, Node headToSet, Node currToSet) {
  4. /*printf("\nSetting Head to ");
  5. if(headToSet != NULL) {
  6. printf("%d\n", *(int*)headToSet->value);
  7. } else {
  8. printf("NULL\n");
  9. }
  10. */
  11. it->head = headToSet;
  12. /*
  13. printf("Setting Tail to ");
  14. if(tailToSet != NULL) {
  15. printf("%d\n", *(int*)tailToSet->value);
  16. } else {
  17. printf("NULL\n");
  18. }*/
  19. it->tail = tailToSet;
  20. it->curr = currToSet;
  21. }
  22.  
  23. static Node firstNode(IteratorG it) {
  24. return it->first;
  25. }
  26.  
  27. static Node lastNode(IteratorG it) {
  28. return it->last;
  29. }
  30.  
  31. static Node headNode(IteratorG it) {
  32. return it->head;
  33. }
  34.  
  35. static Node tailNode(IteratorG it) {
  36. return it->tail;
  37. }
  38.  
  39. static Node currNode(IteratorG it) {
  40. return it->curr;
  41. }
  42.  
  43. static int numItems(IteratorG it) {
  44. return it->nitems;
  45. }
  46.  
  47. void printList(IteratorG it) {
  48. printf("\n\n");
  49. Node head = headNode(it);
  50. Node tail = tailNode(it);
  51. Node curr = currNode(it);
  52. //setCursor(it, NULL, firstNode(it));
  53. reset(it);
  54. Node v = nextNode(it);
  55.  
  56. printf("\033[032m");
  57. printf("\033[s");
  58. printf("\033[2A");
  59. printf(" ITEMS");
  60. printf("\033[u");
  61. printf("\033[1A");
  62. printf(" %d", numItems(it));
  63. printf("\033[u");
  64. printf("\033[037m");
  65.  
  66. if(tail == NULL) {
  67. printf(" \033[036mNULL\033[037m <-> ");
  68. } else {
  69. printf(" \033[031mNULL\033[037m <-> ");
  70. }
  71.  
  72. while(v != NULL) {
  73. /*
  74. printf("\033[s");
  75. printf("\033[3A");
  76. printPointers(it);
  77. printf("\033[u");
  78. */
  79. /*
  80. First Node = Green
  81. Last Node = Cyan
  82. Head Node = Yellow
  83. Tail Node = Light Blue
  84. */
  85.  
  86. if(v == firstNode(it)) {
  87. printf("\033[032m");
  88. printf("\033[s");
  89. printf("\033[2A");
  90. printf("FIRST");
  91. printf("\033[u");
  92. printf("\033[1A");
  93. printf(" \u2193");
  94. printf("\033[u");
  95. printf("\033[037m");
  96. } else if(v == lastNode(it)) {
  97. printf("\033[032m");
  98. printf("\033[s");
  99. printf("\033[2A");
  100. printf("LAST");
  101. printf("\033[u");
  102. printf("\033[1A");
  103. printf("\u2193");
  104. printf("\033[u");
  105. printf("\033[037m");
  106. }
  107.  
  108. if(v == curr) {
  109. printf("\033[033m");
  110. printf("\033[s");
  111. printf("\033[1A");
  112. printf("CURR");
  113. printf("\033[u");
  114. printf("\033[037m");
  115. }
  116.  
  117. if(v == head) {
  118. printf("\033[035m");
  119. } else if(v == tail) {
  120. printf("\033[036m");
  121. }
  122.  
  123. printf("[%d]\033[037m <-> ", *(int*)v->value);
  124. fflush(stdout);
  125. v = nextNode(it);
  126. }
  127. if(head == NULL) {
  128. printf("\033[035mNULL\033[037m");
  129. } else {
  130. printf("\033[031mNULL\033[037m");
  131. }
  132.  
  133. setCursor(it, tail, head, curr);
  134. printf("\n\n\n");
  135. fflush(stdout);
  136. }
  137.  
  138. void printPointers(IteratorG it) {
  139. //printf("\n");
  140. printf("First: ");
  141. if(it->first != NULL) {
  142. printf("%d", *(int*)it->first->value);
  143. } else {
  144. printf(" N");
  145. }
  146. printf(" | ");
  147. printf("Last: ");
  148. if(it->last != NULL) {
  149. printf("%d", *(int*)it->last->value);
  150. } else {
  151. printf(" N");
  152. }
  153. printf(" | ");
  154. printf("Tail: ");
  155. if(it->tail != NULL) {
  156. printf("%d", *(int*)it->tail->value);
  157. } else {
  158. printf(" N");
  159. }
  160. printf(" | ");
  161. printf("Head: ");
  162. if(it->head != NULL) {
  163. printf("%d", *(int*)it->head->value);
  164. } else {
  165. printf(" N");
  166. }
  167. //printf("\n");
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement