Advertisement
Guest User

Untitled

a guest
May 25th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. struct list
  6. {
  7. int data;
  8. struct list *next;
  9. struct list *pred;
  10. char inf[100];
  11. };
  12.  
  13. void insert_first(struct list *a)
  14. {
  15. struct list *a = malloc(sizeof(struct list));
  16. printf("Введите ключ нового элемента: \n");
  17. int x;
  18. scanf("%d", &x);
  19. a->data = x;
  20. printf("Введите информацию нового элементa: \n");
  21. char s1[100];
  22. fgets(s1, 100, stdin);
  23. if (s1[strlen(s1) - 1] == '\n')
  24. {
  25. s1[strlen(s1) - 1] = 0;
  26. }
  27. strcpy(a->inf, s1);
  28. a->pred = pred;
  29. a->next = 0;
  30. }
  31.  
  32. void pusto (struct list *a)
  33. {
  34. if(a != NULL)
  35. {
  36. a->data=0;
  37. a->next=0;
  38. a->pred=0;
  39. }
  40. }
  41.  
  42. int len(struct list *a)
  43. {
  44. int i = 0;
  45. while (a!=0)
  46. {
  47. i++;
  48. a=a->next;
  49. }
  50. printf("Количество элементов списка: %d\n",i);
  51. }
  52.  
  53. int print(struct list *a)
  54. {
  55. int i = 0;
  56. printf("| %2s | %8s | %18s |\n", "N p/p", "Ключ", "Информация");
  57. while (a!=0)
  58. {
  59. printf("нет");
  60. printf("| %2d | %5d | %16s |\n", i, a->data, a->inf);
  61. i++;
  62. a=a->next;
  63. }
  64. }
  65.  
  66. void menu_print()
  67. {
  68. printf("\n");
  69. printf("Mеню:\n\n");
  70. printf("1. Создание пустого списка;\n");
  71. printf("2. Подсчет количества элементов списка;\n");
  72. printf("3. Вывод на экран содержимого списка в виде таблицы;\n");
  73. printf("4. Вставка элемента в начало списка;\n");
  74. printf("5. Вставка элемента в конец списка; \n");
  75. printf("6. Исключение элемента из начала списка;\n");
  76. printf("7. Исключение элемента из конца списка;\n");
  77. printf("8. Сохранение списка в файле;\n");
  78. printf("9. Восстановление списка из файла;\n");
  79. printf("10. Уничтожение списка с освобождением памяти;\n");
  80. printf("11. Включить новый элемент вместо i-го по номеру элемента;\n");
  81. printf("12. Исключить элемент с соответствующим ключом; \n");
  82. printf("13. Поменять местами элемент с максимальным нечетным значением ключа и первый элемент списка; \n");
  83. printf("0. Выход из программы.\n\n");
  84. printf("Введите номер действия: ");
  85. }
  86.  
  87. short menu()
  88. {
  89. short c;
  90. scanf("%hd", &c);
  91. getchar();
  92. return c;
  93. }
  94.  
  95. int main()
  96. {
  97. struct list *first = NULL;
  98. struct list *a;
  99. ;
  100. int i = 1;
  101. menu_print();
  102. short c = menu();
  103. while (c)
  104. {
  105. switch (c)
  106. {
  107. case 1:
  108. pusto(first);
  109. break;
  110. case 2:
  111. {
  112. len(first);
  113. break;
  114. }
  115. case 3:
  116. print(first);
  117. break;
  118. case 4:
  119. printf("нет");
  120. break;
  121. case 5:
  122. printf("нет");
  123. break;
  124. case 6:
  125. printf("нет");
  126. break;
  127. case 7:
  128. printf("нет");
  129. break;
  130. case 8:
  131. printf("нет");
  132. break;
  133. case 9:
  134. printf("нет");
  135. break;
  136. case 10:
  137. printf("нет");
  138. break;
  139. case 11:
  140. printf("нет");
  141. break;
  142. case 12:
  143. printf("нет");
  144. break;
  145. case 13:
  146. printf("нет");
  147. break;
  148. default:
  149. printf("Такого действия не предусмотренно!\n");
  150. }
  151. printf("Введите следующее действие: ");
  152. c = menu();
  153. }
  154. printf("Программа завершина\n");
  155. return 0;
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement