кто-нибудь может перевести этот код с c# на c++?
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Алгоритмы_3
{
//Определение класса LLNode - узла списка
public class LLNode
{
// Свойства класса
internal LLNode forward = null; // Следующий узел
internal LLNode backward = null; // Предыдущий узел
internal int info = 0;
// Функция статическая: "Создать список из объектов типа LLNode"
public static void CreatList(int n, ref LLNode NovNod)
{
//Создание первого элемента списка
string sInfo = Console.ReadLine(); // ввод заначения поля info типа string
int iInfo = Convert.ToInt32(sInfo); // преобразование sInfo в целое число iInfo
// NovNod = new LLNode(); // объявление первого объекта списка
NovNod.info = iInfo; // определение свойства объекта
NovNod.forward = null; //
LLNode PosEl = new LLNode(); // объявление указателя на последний элемент списка
PosEl = NovNod; //
//Добавление элементов в списк
for (int i = 2; i <= n; i++)
{
sInfo = Console.ReadLine();
iInfo = Convert.ToInt32(sInfo);
LLNode SledNod = new LLNode();
SledNod.info = iInfo;
SledNod.forward = null;
PosEl.forward = SledNod; //
PosEl = SledNod; // объявление указателя на последний элемент списка
}
}
// Функция статическая: "Чтение списка, вывод значения полей info и возврат количества узлов в списке"
public static void ReadList(ref int nElement, LLNode NovN)
{
//Чтение элементов в списка
nElement = 0;
LLNode CiklNod = new LLNode();
CiklNod = NovN; //указатель начала списка
do //цикл чтения списка
{
Console.Write(CiklNod.info + ", ");
CiklNod = CiklNod.forward;
nElement = nElement + 1; //счетчик количества элементов в списке
}
while (CiklNod != null);
}
// Функция статическая: "Найти в списке элемент c максимальным значением поля info"
public static void MaxElementInfo(ref int MaxEl, LLNode NovN)
{
//Поиск максимального элемента списка
LLNode CiklNod = new LLNode();
CiklNod = NovN;
MaxEl = NovN.info;
do
{
if (CiklNod.info > MaxEl) MaxEl = CiklNod.info;
CiklNod = CiklNod.forward;
}
while (CiklNod != null);
}
// Функция статическая: "Вставит в список L новый узел Е1 перед первым вхождением узла Е"
public static void V(LLNode NovN)
{
//Вставка в список L нового узла Е1 перед первым вхождением узла Е
LLNode CiklNod = new LLNode();
CiklNod = NovN;
//Вот здесь не знаю как Вставит в список L новый узел Е1 перед первым вхождением узла Е
}
}
//Определение класса Linktllist - узла списка
public class Program
{
public static void Main(string[] args)
{
LLNode NN = new LLNode();
int qName = 0;
while (qName != 4) //
{
Console.WriteLine("---------------------------------------------------------");
Console.WriteLine("1 Создать и заполнить информацией список");
Console.WriteLine("2 Читать список");
Console.WriteLine("3 Найти элемент с максимальным значением свойства info");
Console.WriteLine("4 Выход");
Console.WriteLine("---------------------------------------------------------");
Console.WriteLine("Введите номер пункта меню");
string sName = Console.ReadLine();
qName = Convert.ToInt32(sName);
switch (qName)
{
case 1:
//Ввод количества элементов списка
Console.WriteLine("Введите количество элементов списка");
string sNum = Console.ReadLine();
int iNum = Convert.ToInt32(sNum);
Console.WriteLine("Введите " + sNum + " элементов списка через Enter");
// Создание списка из n элементов
LLNode.CreatList(iNum, ref NN);
break;
case 2:
// Чтение списка, подсчет колическва элементов
int nEl = 0;
LLNode.ReadList(ref nEl, NN);
Console.WriteLine("Элементов в списке: " + nEl);
break;
case 3:
//Поиск максимального числа в списке и его вывод на экран
int res = 0;
LLNode.MaxElementInfo(ref res, NN);
Console.Write("Максимальное число: ");
Console.WriteLine(res);
//Console.ReadKey();
break;
case 4:
// Вставка в список L нового узла Е1 перед первым вхождением узла Е
LLNode.V(NN);
//Console.ReadKey();
break;
default:
break;
}
}
}
}
}