#define _CRT_SECURE_NO_WARNINGS #include #include struct Node { int data; struct Node* next; }; struct Node* first = NULL; void printList() { struct Node* ptr = first; while (ptr != NULL) { printf("(%d)->", ptr->data); ptr = ptr->next; } printf("NULL\n"); } void addToHead(int value) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); newNode->next = first; newNode->data = value; first = newNode; } int deleteFromHead() { int value = first->data; struct Node* delNode = first; first = first->next; free(delNode); return value; } int contains(int value) { struct Node* ptr = first; while (ptr != NULL) { if (ptr->data == value) { return 1; } ptr = ptr->next; } return 0; } void clearList() { while (first != NULL) { struct Node* delNode = first; first = first->next; free(delNode); } } int sum() { struct Node* ptr = first; int s = 0; while (ptr != NULL) { s += ptr->data; ptr = ptr->next; } return s; } int evenCount() { struct Node* ptr = first; int count = 0; while (ptr != NULL) { if (ptr->data % 2 == 0) { count++; } ptr = ptr->next; } return count; } void oddsX10() { struct Node* ptr = first; while (ptr != NULL) { if (ptr->data % 2 != 0) { ptr->data = ptr->data * 10; } ptr = ptr->next; } } void elementIx100(int i) { struct Node* ptr = first; int index = 0; while (ptr != NULL) { if (index == i) { ptr->data = ptr->data * 100; return; } ptr = ptr->next; index++; } } void elementLeftIx10(int i) { struct Node* ptr = first; int index = 0; while (ptr != NULL) { if (index < i) { ptr->data = ptr->data * 10; } index++; ptr = ptr->next; } } void Task1() { printList(); addToHead(6400); addToHead(500); addToHead(200); addToHead(200); printList(); printf("contains(100) = %d\n", contains(100)); printf("contains(100) = %d\n", contains(150)); printf("contains(100) = %d\n", contains(200)); clearList(); printList(); printf("contains(100) = %d\n", contains(100)); printf("contains(100) = %d\n", contains(150)); printf("contains(100) = %d\n", contains(200)); { int x; scanf("%d", &x); } } void Task2() { printList(); addToHead(1); addToHead(3); addToHead(6); addToHead(9); printList(); printf("sum = %d\n", sum()); clearList(); printList(); printf("sum = %d\n", sum()); { int x; scanf("%d", &x); } } void Task3() { printList(); addToHead(1); addToHead(3); addToHead(6); addToHead(8); printList(); printf("even numbers = %d\n", evenCount()); clearList(); printList(); printf("even numbers = %d\n", evenCount()); { int x; scanf("%d", &x); } } void Task4() { printList(); addToHead(1); addToHead(3); addToHead(6); addToHead(8); printList(); oddsX10(); printList(); clearList(); printList(); { int x; scanf("%d", &x); } } void Task5() { printList(); addToHead(1); addToHead(3); addToHead(6); addToHead(8); printList(); elementIx100(0); printList(); elementIx100(2); printList(); elementIx100(0); printList(); { int x; scanf("%d", &x); } } void Task6() { printList(); addToHead(1); addToHead(3); addToHead(6); addToHead(8); printList(); elementLeftIx10(1); printList(); elementLeftIx10(2); printList(); elementLeftIx10(4); printList(); { int x; scanf("%d", &x); } } void main() { first = NULL; Task1(); clearList(); Task2(); clearList(); Task3(); clearList(); Task4(); clearList(); Task5(); clearList(); Task6(); }