Advertisement
Guest User

Untitled

a guest
May 27th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. /*
  2. Zaprojektować 2 C-struktury: Node - opisującą węzeł listy oraz List - reprezentującą jednokierunkową listę węzłów. Polami identyfikującymi węzeł są wartość całkowita węzła i wskaźnik do następnego węzła na liście, zaś lista jest identyfikowana przez wskaźnik do swojego pierwszego i ostatniego węzła na liście.
  3.  
  4. struct Node
  5. {
  6. int value;
  7. struct Node *next;
  8. };
  9.  
  10.  
  11. struct List
  12. {
  13. struct Node *first, *last;
  14. };
  15.  
  16. List of Nodes
  17.  
  18.  
  19. Zrealizować poniższe funkcje globalne, o następujących sygnaturach:
  20. a. (0.5 p) List* list() - utworzy na stercie pustą listę, Node* node(int v) - utworzy na stercie nowy węzeł o wartości v oraz next = NULL
  21. b. (0.5 p) List* push(List* s, Node* n) - dodaje węzeł n na początek listy s (jeśli wcześniej nie było wartości węzła n na liście s) i zwraca zmodyfikowaną s
  22. c. (0.5 p) List* inject(List* s, Node* n) - dodaje węzeł n na koniec listy s (jeśli wcześniej nie było wartości węzła n na liście s) i zwraca zmodyfikowaną s
  23. d. (1 p) List* insertAfter(List* s, Node* curr, Node* n) - dodaje do listy s węzęł n (jeśli nie było jego wartości wcześniej na liście) na pozycję bezpośrednio po węzle curr (licząc od lewej do prawej strony) i zwraca zmodyfikowaną s
  24. e. (1 p) List* insertBefore(List* s, Node* curr, Node* n) - dodaje do listy s węzęł n (jeśli nie było jego wartości wcześniej na liście) na pozycję bezpośrednio przed węzłem curr (licząc od lewej do prawej strony) i zwraca zmodyfikowaną s
  25. f. (1.5 p) List* del(List* s, int v) - usuwa z listy s węzeł o wartości v i zwraca zmodyfikowaną s
  26. g. (0.5 p) void printNode(Node* n) - wypisuje informacje o węzle n
  27. h. (0.5 p) void printLR(List* s) - wypisuje informacje o wszystkich węzłach z listy s, w kolejności od lewej do prawej
  28. i. (1 p) void printRL(List* s) - wypisuje informacje o wszystkich węzłach z listy s, w kolejności od prawej do lewej.
  29.  
  30. Napisać funkcję główną do testowania działania w/w fun
  31. */
  32.  
  33. #include <cstdlib>
  34. #include <iostream>
  35.  
  36. using namespace std;
  37.  
  38.  
  39.  
  40.  
  41. struct Node
  42. {
  43. int value;
  44. struct Node *next;
  45. };
  46.  
  47.  
  48. struct List
  49. {
  50. struct Node *first, *last;
  51. };
  52.  
  53.  
  54. //A
  55. List* list(){
  56. List* lista = new List();
  57. return lista;
  58. }
  59. Node* node(int v){
  60. Node* nod = new Node();
  61. nod->value=v;
  62. nod->next=NULL;
  63. return nod;
  64. }
  65. bool check (List* s, Node* n){
  66. Node* nod = new Node();
  67. bool flag=false;
  68. nod= s->first;
  69. while(nod->next!=NULL){
  70. if(n==nod){
  71. flag=true;
  72. break;
  73. }
  74. }return flag;
  75. }
  76.  
  77. List* push(List* s, Node* n){
  78. if(check(s,n)){
  79. Node* nod= new Node();
  80. nod=s->first;
  81. s->first= n;
  82. n->next=nod;
  83.  
  84.  
  85. }
  86.  
  87. return s;
  88.  
  89. }
  90. //List* inject(List* s, Node* n){
  91. // if(check(s,n)){
  92. // Node*
  93. // };
  94. //}
  95. int main(int argc, char** argv) {
  96.  
  97. return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement