Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 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.
- struct Node
- {
- int value;
- struct Node *next;
- };
- struct List
- {
- struct Node *first, *last;
- };
- List of Nodes
- Zrealizować poniższe funkcje globalne, o następujących sygnaturach:
- 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
- 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
- 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
- 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
- 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
- f. (1.5 p) List* del(List* s, int v) - usuwa z listy s węzeł o wartości v i zwraca zmodyfikowaną s
- g. (0.5 p) void printNode(Node* n) - wypisuje informacje o węzle n
- 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
- i. (1 p) void printRL(List* s) - wypisuje informacje o wszystkich węzłach z listy s, w kolejności od prawej do lewej.
- Napisać funkcję główną do testowania działania w/w fun
- */
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- struct Node
- {
- int value;
- struct Node *next;
- };
- struct List
- {
- struct Node *first, *last;
- };
- //A
- List* list(){
- List* lista = new List();
- return lista;
- }
- Node* node(int v){
- Node* nod = new Node();
- nod->value=v;
- nod->next=NULL;
- return nod;
- }
- bool check (List* s, Node* n){
- Node* nod = new Node();
- bool flag=false;
- nod= s->first;
- while(nod->next!=NULL){
- if(n==nod){
- flag=true;
- break;
- }
- }return flag;
- }
- List* push(List* s, Node* n){
- if(check(s,n)){
- Node* nod= new Node();
- nod=s->first;
- s->first= n;
- n->next=nod;
- }
- return s;
- }
- //List* inject(List* s, Node* n){
- // if(check(s,n)){
- // Node*
- // };
- //}
- int main(int argc, char** argv) {
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement