1. любой ли список является связным? обоснуйте ответ. 2. в чем отличие первого элемента однонаправленного (двунаправленного) списка от остальных элементов этого же списка? 3. в чем отличие последнего элемента однонаправленного (двунаправленного) списка от остальных элементов этого же списка? 4. почему при работе с однонаправленным списком необходимо позиционирование на первый элемент списка? 5. почему при работе с двунаправленным списком не обязательно позиционирование на первый элемент списка? 6. в чем принципиальные отличия выполнения добавления (удаления) элемента на первую и любую другую позиции в однонаправленном списке? 7. в чем принципиальные отличия выполнения основных операций в однонаправленных и двунаправленных списках? 8. с какой целью в программах выполняется проверка на пустоту однонаправленного (двунаправленного) списка? 9. с какой целью в программах выполняется удаление однонаправленного (двунаправленного) списка по окончании работы с ним? как изменится работа программы, если операцию удаления списка не выполнять?
#include <stdio.h>
#include <malloc.h>
void reading(int*,int);
void writing(int*,int);
int main(void)
{int *Array,n,c;
scanf("%d",&n);
Array=(int*)malloc(n*sizeof(int));
reading(Array,n);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(Array[i]>Array[j])
{c=Array[i];
Array[i]=Array[j];
Array[j]=c;}
writing(Array,n);
return 0;}
void reading(int *Array,int n)
{for(int i=0;i<n;i++)
scanf("%d",&Array[i]);}
void writing(int *Array,int n)
{for(int i=0;i<n;i++)
printf("%d \n",Array[i]);}
Пример ввода:
3
1
3
2
Пример вывода:
3
2
1