Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct list
- {
- int data;
- struct list *next;
- struct list *pred;
- char inf[100];
- };
- void insert_first(struct list *a)
- {
- struct list *a = malloc(sizeof(struct list));
- printf("Введите ключ нового элемента: \n");
- int x;
- scanf("%d", &x);
- a->data = x;
- printf("Введите информацию нового элементa: \n");
- char s1[100];
- fgets(s1, 100, stdin);
- if (s1[strlen(s1) - 1] == '\n')
- {
- s1[strlen(s1) - 1] = 0;
- }
- strcpy(a->inf, s1);
- a->pred = pred;
- a->next = 0;
- }
- void pusto (struct list *a)
- {
- if(a != NULL)
- {
- a->data=0;
- a->next=0;
- a->pred=0;
- }
- }
- int len(struct list *a)
- {
- int i = 0;
- while (a!=0)
- {
- i++;
- a=a->next;
- }
- printf("Количество элементов списка: %d\n",i);
- }
- int print(struct list *a)
- {
- int i = 0;
- printf("| %2s | %8s | %18s |\n", "N p/p", "Ключ", "Информация");
- while (a!=0)
- {
- printf("нет");
- printf("| %2d | %5d | %16s |\n", i, a->data, a->inf);
- i++;
- a=a->next;
- }
- }
- void menu_print()
- {
- printf("\n");
- printf("Mеню:\n\n");
- printf("1. Создание пустого списка;\n");
- printf("2. Подсчет количества элементов списка;\n");
- printf("3. Вывод на экран содержимого списка в виде таблицы;\n");
- printf("4. Вставка элемента в начало списка;\n");
- printf("5. Вставка элемента в конец списка; \n");
- printf("6. Исключение элемента из начала списка;\n");
- printf("7. Исключение элемента из конца списка;\n");
- printf("8. Сохранение списка в файле;\n");
- printf("9. Восстановление списка из файла;\n");
- printf("10. Уничтожение списка с освобождением памяти;\n");
- printf("11. Включить новый элемент вместо i-го по номеру элемента;\n");
- printf("12. Исключить элемент с соответствующим ключом; \n");
- printf("13. Поменять местами элемент с максимальным нечетным значением ключа и первый элемент списка; \n");
- printf("0. Выход из программы.\n\n");
- printf("Введите номер действия: ");
- }
- short menu()
- {
- short c;
- scanf("%hd", &c);
- getchar();
- return c;
- }
- int main()
- {
- struct list *first = NULL;
- struct list *a;
- ;
- int i = 1;
- menu_print();
- short c = menu();
- while (c)
- {
- switch (c)
- {
- case 1:
- pusto(first);
- break;
- case 2:
- {
- len(first);
- break;
- }
- case 3:
- print(first);
- break;
- case 4:
- printf("нет");
- break;
- case 5:
- printf("нет");
- break;
- case 6:
- printf("нет");
- break;
- case 7:
- printf("нет");
- break;
- case 8:
- printf("нет");
- break;
- case 9:
- printf("нет");
- break;
- case 10:
- printf("нет");
- break;
- case 11:
- printf("нет");
- break;
- case 12:
- printf("нет");
- break;
- case 13:
- printf("нет");
- break;
- default:
- printf("Такого действия не предусмотренно!\n");
- }
- printf("Введите следующее действие: ");
- c = menu();
- }
- printf("Программа завершина\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement