Составить оператор INSERT, который вставляет элементы в начало списка - C#
Формулировка задачи:
Помогите, пожалуйста!!! Нужно составить оператор INSERT, который вставляет элементы в начало списка (при этом реализация списка осуществляется посредством массива).
Можно также использовать язык Pascal
Решение задачи: «Составить оператор INSERT, который вставляет элементы в начало списка»
textual
Листинг программы
using System;
namespace ConsoleApp
{
class Program
{
// Для вставки одного элемента
public static int[] InsertOne(int[] array, int elem) {
int[] result = new int[array.Length + 1];
result[0] = elem;
for (int i = 1; i <= array.Length; i++)
result[i] = array[i - 1];
return result;
}
// Для вставки нескольких элементов
public static int[] InsertMany(int[] array, params int[] elements) {
int[] result = new int[array.Length + elements.Length];
for (int i = 0; i < elements.Length; i++)
result[i] = elements[i];
for (int i = elements.Length; i < result.Length; i++)
result[i] = array[i - elements.Length];
return result;
}
// Обобщённый вариант для любого типа
public static T[] InsertMany<T>(T[] array, params T[] elements) {
T[] result = new T[array.Length + elements.Length];
for (int i = 0; i < elements.Length; i++)
result[i] = elements[i];
for (int i = elements.Length; i < result.Length; i++)
result[i] = array[i - elements.Length];
return result;
}
static void Main(string[] args) {
int[] ar1 = { 2, 3, 4, 5 };
int[] res1 = InsertOne(ar1, 1); // {1, 2, 3, 4, 5}
// {1, -1, -2, 1, 2, 3, 4, 5}
int[] res2 = InsertMany<int>(ar1, 1, -1, -2);
}
}
}