Advertisement
Guest User

2in1

a guest
Nov 13th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. 2 projkety (LISTA i kolejka), lista ma byc z sortowaniem z przemienianiem wskaznikow!!!
  2.  
  3. LISTA jednokierunkowa: (np. indeks slow w tekscie)
  4. pHead, pLast, dynamiczna lista
  5. - wartownik sprzodu
  6.  
  7. Kolejka dwukierunkowa
  8. - wartownik sprzodu
  9. - jedym wskaznikiem przeszukiwac liste zeby wiedziec gdzie wstawic
  10.  
  11. typede stryct tagListItem
  12. {
  13. LISTINFO* pInt
  14. TAGlISTiTEM* pNext
  15. TAGlISTiTEM* pPrev
  16. { lISTiTEM;
  17.  
  18.  
  19. void InsertAfter(ListItem* pAfter, ListINFO* pInfo)
  20. {
  21. ListItem* p = (ListItem*)malloc (sizeof(listitem));
  22. memset(p, 0, sizeof(listItem));
  23. p->pPrev = pAfter;
  24. p->pNext = pAfter->pNext;
  25. pAfter->pNext = p;
  26. if(p->pNext)
  27. p->pNext->pPrev = p;
  28. }
  29.  
  30.  
  31.  
  32. ************
  33. pList [ ] -> [ x ] -> [ 4 ] -> [ 2 ] -> [ 3 ] -> [ 1 ]
  34. 3 wskazniki: pStart, pMin, p
  35.  
  36. while(p->pNext)
  37. if(pMin->pNext->key >= p->pNext->key)
  38. p idzie do przodu
  39. // 5 krokow nalezy wykonac aby przestawic element; pMin = pStart; p = pMin->pNext;
  40.  
  41.  
  42. - KOLEJKA FIFO (first in, first out) - jeden projekt ale w 3 werjach1!!! (tablicowa, )
  43. Ad tablicowa:
  44. Mam kolejka (fQueue), zdefiniowana kolejka, dynamiczna tablica wskazniki,
  45. global.h
  46. - ma byc cykliczna ( jezeli dojde do konca tablicy to musze z indeksem tablicy przejsc na poczatek!!!! porownuje ilosc elementow z rozmiarem)
  47. nHead(wskaznik do pierwszego elementu), nTail(wskaznik do ostatniego elementu)
  48. - musimy miec dod. info ile elementow jest umieszczne w kolejce;
  49. - ma byc wspolny przedrostek do wszystkich funkcji (fQ)
  50.  
  51. typedef struct
  52. {
  53. ...
  54. ...
  55. ...
  56. ...
  57. ...
  58. } fQueue;
  59.  
  60. int fQEmpty()
  61. fQueue* fQCreate(int nSize)
  62. void fQEnqQueue(fQueue* q, fQITEM* ) / wstawian nowy element do kolejki
  63. fQueue* fQDeQueque(fQueue* q) // sprawdza czy koljeka nie jest pusta, jezeli nie to zwraca element
  64. void fQClear(fQueue* q); // zwalnianie pamieci
  65. void fQRemove(fQueue** q); // usunie strukture i wynulluje (wskaznik na null)
  66.  
  67.  
  68. - kolejka prosta bez glowy
  69.  
  70. typedef struct tagFQITEM
  71. {
  72. ifno finf..
  73. ...
  74. }
  75.  
  76. typedef struct
  77. {
  78. fQItem* pNext; // to the first queue item
  79. fQItem* pTail // to the last queue item
  80. } fQueue;
  81.  
  82.  
  83. fQueue* QFCreate( FQueue* q); // zwraca NULL gdy sie nie uda
  84. int QFEmpty(FQueue* q); // if FIFO empty returned 1 else 0
  85. void QFEnqueue( fQueeue* q, int s); // inset new item at the end
  86. void QFDequeue( fQueue* q); // take out the first item
  87. void QFClear( fQueue* q); // czysci kolejke ale kolejka zostaje
  88. void QFRemove( fQueue** q); // wyrzuca kolejke
  89. void QFDell( FQueue* q); // remove only first items
  90.  
  91.  
  92. // calloc zamiast memlock i memset, pragma zamiast warunkowych kompilacji
  93.  
  94.  
  95. - to samo tylko z glowa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement