Ввести с клавиатуры число и поместить его перед тем элементом списка, который больше него - C (СИ) (79543)
Формулировка задачи:
Создать односвязный список с помощью массива целых чисел. Ввести с клавиатуры число и поместить его перед тем элементом списка, который больше него.
Как это реализовать, в тупике, вот моя жалкая попытка:
}
#define m 50
int i,num,k=0,max,n;
int count=0;
int p[m],a[m],next[m];
int main (void)
{
printf(" How match elements?\n");
scanf("%d",&n);
printf("input mas razmerom %i\n",n);
for(i=0;i<n;i++)
{
p[i]=0;
scanf("%d",&a[i]);
count++;
}
printf("Enter num:\n");
scanf("%i",&num);
for(i=0;i<n;i++){
p[count]=a[i];
if(p[i]<p[i+1]) i=k;num=a[k];Решение задачи: «Ввести с клавиатуры число и поместить его перед тем элементом списка, который больше него»
textual
Листинг программы
class list
{
struct Node//Элемент списка
{
int val; //Значение, которое хранит элемент
Node* next; //Указатель на следующий элемент
Node(int v); //Конструктор элемента списка
};
//Указатель на начало и конец списка
Node* begin;
Node* end;
public:
//...
//Описание конструкторов, деструкторов, функций и операторов
//...
};
Объяснение кода листинга программы
- В начале кода определена структура
Node, которая представляет элемент списка. У элемента есть значениеvalи указатель на следующий элементnext. - Определены указатели
beginиend, которые указывают на начало и конец списка соответственно. - В открытом разделе определены конструкторы, деструкторы, функции и операторы, которые не показаны в данном коде.
- Для использования этих переменных, вам необходимо создать объект класса
list. - В функции
insertмы создаем новый элемент списка с помощью конструктораNode(int v). - Затем мы ищем место, где нужно вставить новый элемент. Для этого мы начинаем с указателя
beginи сравниваем значения каждого элемента с введенным числом. - Как только мы находим элемент, который больше введенного числа, мы вставляем новый элемент перед этим элементом.
- Если мы доходим до конца списка и не находим элемент, который больше введенного числа, мы вставляем новый элемент в конец списка.
- Мы возвращаем указатель на новый элемент списка.
- В функции
mainмы создаем объект классаlistи вызываем функциюinsert, передавая ей введенное с клавиатуры число и указатель на начало списка. - Затем мы выводим список на экран.
- Ввод с клавиатуры числа и вывод списка на экран не показаны в данном коде.