Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct Bron Bron;
- struct Bron{
- int numer_broni;
- Bron *prev;
- Bron *next;
- };
- Bron* dodaj_pierwszy(Bron *head, Bron* nowy){
- if(head == NULL){
- nowy->next = NULL;
- nowy->prev = NULL;
- head = nowy;
- }else{
- nowy->prev = NULL;
- nowy->next = head;
- head->prev = nowy;
- head = nowy;
- }
- return head;
- }
- Bron* dodaj_ostatni(Bron *head, Bron *nowy){
- Bron *first = head;
- while(first->next != NULL){
- first = first->next;
- }
- first->next = nowy;
- nowy->prev = first;
- nowy->next = NULL;
- return head;
- }
- Bron* dodaj_na_N(Bron *head, Bron *nowy, int poz){
- Bron *first = head;
- int i = 2;
- while(first->next != NULL){
- if(i == poz){
- nowy->next = first->next;
- first->next->prev = nowy;
- nowy->prev = first;
- first->next = nowy;
- }
- i++;
- first = first->next;
- }
- if(poz >= i){
- head = dodaj_ostatni(head, nowy);
- }
- return head;
- }
- Bron* usuwanie(Bron *head, int poz){
- Bron *first = head;
- if(poz == 0){
- first->next->prev = NULL;
- head = first->next;
- }else if(poz == 1){
- while(first->next != NULL){
- first = first->next;
- }
- first->prev->next = NULL;
- }
- free(first);
- return head;
- }
- Bron* dodaj_nowy(Bron *head, Bron* nowy, int poz){
- if(poz == 1){
- head = dodaj_pierwszy(head, nowy);
- }else{
- head = dodaj_na_N(head, nowy, poz);
- }
- return head;
- }
- int main() {
- Bron *pierwsza = (Bron *) malloc(sizeof(Bron));
- pierwsza->numer_broni = 123;
- pierwsza->next = NULL;
- pierwsza->prev = NULL;
- Bron *nowa = (Bron *) malloc(sizeof(Bron));
- Bron *nowa1 = (Bron *) malloc(sizeof(Bron));
- Bron *nowa2 = (Bron *) malloc(sizeof(Bron));
- Bron *nowa3 = (Bron *) malloc(sizeof(Bron));
- nowa->numer_broni = 321;
- nowa1->numer_broni = 56;
- nowa2->numer_broni = 90;
- nowa3->numer_broni = 5;
- pierwsza = dodaj_pierwszy(pierwsza, nowa);
- pierwsza = dodaj_ostatni(pierwsza, nowa1);
- pierwsza = dodaj_ostatni(pierwsza, nowa3);
- //pierwsza = usuwanie(pierwsza, 0);
- pierwsza = dodaj_nowy(pierwsza, nowa2, 5);
- Bron* first = pierwsza;
- if(first != NULL){
- while(first != NULL){
- printf("Numer broni: %d \n", first->numer_broni);
- first = first->next;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement