Ввести с клавиатуры число и поместить его перед тем элементом списка, который больше него - 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:
    //...
    //Описание конструкторов, деструкторов, функций и операторов
    //...
};

Объяснение кода листинга программы

  1. В начале кода определена структура Node, которая представляет элемент списка. У элемента есть значение val и указатель на следующий элемент next.
  2. Определены указатели begin и end, которые указывают на начало и конец списка соответственно.
  3. В открытом разделе определены конструкторы, деструкторы, функции и операторы, которые не показаны в данном коде.
  4. Для использования этих переменных, вам необходимо создать объект класса list.
  5. В функции insert мы создаем новый элемент списка с помощью конструктора Node(int v).
  6. Затем мы ищем место, где нужно вставить новый элемент. Для этого мы начинаем с указателя begin и сравниваем значения каждого элемента с введенным числом.
  7. Как только мы находим элемент, который больше введенного числа, мы вставляем новый элемент перед этим элементом.
  8. Если мы доходим до конца списка и не находим элемент, который больше введенного числа, мы вставляем новый элемент в конец списка.
  9. Мы возвращаем указатель на новый элемент списка.
  10. В функции main мы создаем объект класса list и вызываем функцию insert, передавая ей введенное с клавиатуры число и указатель на начало списка.
  11. Затем мы выводим список на экран.
  12. Ввод с клавиатуры числа и вывод списка на экран не показаны в данном коде.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы