#include #include #include #include "linked_list.h" int getListNodeLength(Node* HEAD) { int len = 0; Node* current = HEAD; while (current != NULL) { len++; current = current->next; } return len; } // Добавление в конец Node* insert(Node* head, char name[NAME_BUFF_SIZE], char phone[PHONE_BUFF_SIZE], int show) { Node* newNode = (Node*)malloc(sizeof(Node)); strcpy_s(newNode->name_, NAME_BUFF_SIZE, name); strcpy_s(newNode->phone_, PHONE_BUFF_SIZE, phone); newNode->next = NULL; printf("Data: %s %s\n", name, phone); printf("New Data: %s %s\n", newNode->name_, newNode->phone_); if (head == NULL) { printf("\nNew list\n"); head = newNode; return newNode; } Node* last = head; int ind = 0; while (last->next != NULL) { if (show == 1) printf("%d \n", ind++); last = last->next; } last->next = newNode; return head; } char* find(Node* HEAD, char target_name[NAME_BUFF_SIZE]) { Node* current = HEAD; while (current != NULL) { if (strcmp(target_name, current->name_) == 0) { return current->phone_; } current = current->next; } return NULL; } // Вывод всех элементов void printAllNodes(Node* head) { Node* current = head; int ind = 0; while (current != NULL) { printf("Ind: %d\nName: %s\nPhone: %s\n", ind++, current->name_, current->phone_); current = current->next; } } Node* deleteNode(Node* HEAD, char target_name[NAME_BUFF_SIZE]) { Node* privious = HEAD; Node* current = HEAD->next; while (current != NULL) { if (strcmp(target_name, current->name_) == 0) { privious->next = current->next; break; } privious = current; current = current->next; } return HEAD; } Node* listAll(Node* HEAD) { if (HEAD == NULL) { return NULL; } int len = getListNodeLength(HEAD); Node* current = HEAD; Node* list = (Node*)malloc(len * sizeof(Node)); int ind = 0; while (current != NULL) { list[ind++] = *current; current = current->next; } return list; } void printNode(Node node) { printf("%s ", node.name_); printf("%s\n", node.phone_); } void printListNode(Node* list, int length) { printf("\n\n%d\n", length); for (int i = 0; i < length; i++) { printNode(list[i]); } }