[Обучение алгоритмам: линейные таблицы] День 01

тема

01. Удалить элемент с минимальным значением (считающимся уникальным) из таблицы последовательности и вернуть значение удаленного элемента. Свободная позиция заполняется последним элементом.Если список последовательностей пуст, выводится сообщение об ошибке и операция завершается.

Дополнительные очки знаний

  • Характеристика таблицы последовательностей заключается в том, что логическая последовательность совпадает с физической последовательностью.

Анализ идеи

  1. В заголовке два требования: найти минимальное значение, удалить и вернуть его значение и поместить последний элемент в удаленную позицию.
  2. Во-первых, чтобы найти минимальное значение , вы можете использовать переменную MINELEM для записи элемента минимального значения в таблицу последовательности. Прокрутите упорядоченный список и сохраните переменную элемента с минимальным значением путем сравнения элементов.
  3. Во-вторых, для удаления элемента минимального значения и размещения последнего элемента в позиции удаления есть два случая:
    • Элемент минимального значения не находится на позиции последнего элемента , поэтому последний элемент необходимо удалить и переместить.
    • Элемент минимального значения находится как раз на позиции последнего элемента . На данный момент необходимо удалить только элемент, и нет необходимости перемещать элемент.
  4. поэтому,Мы можем считать, что после нахождения элемента с минимальным значением сначала замените его последним элементом, затем удалите последний элемент и верните значение последнего элемента.

Код

int  LinearList::Question_01()//已将顺序表定为私有成员变量arr
{
    
    
    int MINELEM = 999999;
    int temp = -999999;
    for(int i = 0;i < arr.length;i ++){
    
    
        if(arr.data[i] <= MINELEM){
    
    
            MINELEM = i;//记录最小值元素下标
        }

        if(i == arr.length-1){
    
    //交换最小值元素和最后元素
            temp = arr.data[MINELEM];
            arr.data[MINELEM] = arr.data[i];
        }
    }

    if(temp != -999999)
    {
    
    
        //删除最后元素
        arr.length--;
    }

    return temp;//返回最小值
}

результат операции

вставьте сюда описание изображения

おすすめ

転載: blog.csdn.net/wddkxg/article/details/131539668
01-