Динамический список поменять адрес элемент с i на i+1 - C#

Узнай цену своей работы

Формулировка задачи:

Есть динамический список, нам надо с одного места переставить в другое элемент, как это можно сделать, список написан с нуля, класс не используется. Вы наверно не смогли понять что я написал, поэтому смотрите на фото, я нарисую что надо сделать. Заранее спасибо.

Решение задачи: «Динамический список поменять адрес элемент с i на i+1»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
 
namespace WindowsFormsApplication1
 
class VstavkaM12 : MyList
    {
        private int[] mass;
        private int Length;
        private int CurNum;
        public int kolVstvk=0;
        public int kolSrvn=0;
        public VstavkaM12(int n)
        {
            mass = new int[n];
            Length = n;
            CurNum = 0;
        }
 
        public void inputmass(int a, int b)
        {
            Random r = new Random();
            for (int i = 0; i < this.Length; i++)
            {
                int n = r.Next(a, b);
                Push(n);
            }
        }
 
        public void inputFile(OpenFileDialog ofd)
        {
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                string filename = ofd.FileName;
                StreamReader sr = new StreamReader(filename, System.Text.Encoding.Default);
                string s = sr.ReadLine();
                string[] S = s.Split(' ');
                mass = new int[S.Length];
                Length = S.Length;
                for (int i = 0; i < S.Length; i++)
                {
                    Push(int.Parse(S[i]));
                }
            }
        }
        public void outputmass(TextBox tx, TextBox txkolVstvk, TextBox txkolSrvn)
        {
 
            if (kolSrvn == 0) tx.Text += "Начальный массив:\r\n";
 
            else tx.Text += "\nОтсортированный массив:\r\n";
 
            for (int i = 0; i < this.Length; i++)
            {
 
                tx.Text += Convert.ToString(this[i].Element) + " " + "\r";
 
            }
 
            txkolVstvk.Text = Convert.ToString(kolVstvk);
 
            txkolSrvn.Text = Convert.ToString(kolSrvn);
        }
        
 
       
    public void PoiskM1(int x)
        {
            int min = this[x].Element;
            int k = x;
            
            for (int i = x; i < this.Length; i++)
            {
                kolSrvn++;
                if (this[i].Element < min)
                {
                    min = this[i].Element;
                    k = i;
                }
                if (min != this[x].Element)
                {
                    int f = this[x].Element;
                    this[x].Element = min;
                    this[k].Element = f;
                }
            }
        }
                       
        public void sortirovkaM1()
        {
            for (int i = 0; i < this.Length ; i++)
            {
                kolVstvk++;
                PoiskM1(i);
            }
        }
 
 
        public int PoiskM3(int i)
        {
            int j = 0;
            int d = 0;
 
            int c = this[i].Element;
            j = i - 1;
            while (j >= 0 && this[j].Element > c)
            {
                kolSrvn++;
                d++;
                j--;
            }
            return d;
        }
        void Swap(int x, int y)
        {
            int f = this[x].Element;
            this[x].Element = this[y].Element;
            this[y].Element = f;
            kolVstvk++;
        }
 
        public void SortirovkaM3()
        {
           kolVstvk= 0;
            for (int i = 0; i < this.Length; i++)
            {
                int t = PoiskM3(i);
                int j = 1;
                while (t != 0)
                {
                    Swap(i - j, i - j + 1);
                    t--;
                    j++;
                }
            }
        }
    }
}
                            
 
 
 
 
 namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            VstavkaM12 Z = new VstavkaM12(10);
            Z.inputmass(0, 10);
            Z.outputmass(textBox1, textBox3, textBox4);
            Z.sortirovkaM1();
            Z.outputmass(textBox1, textBox3, textBox4);
 
        }
 
 
        private void button2_Click(object sender, EventArgs e)
        {
           VstavkaM12 Z = new VstavkaM12(10);
            Z.inputFile(openFileDialog1);
            Z.outputmass(textBox1, textBox3, textBox4);
            Z.sortirovkaM1();
            Z.outputmass(textBox1, textBox3, textBox4);
        }
 
        private void button3_Click_1(object sender, EventArgs e)
        {
 
            VstavkaM12 Z = new VstavkaM12(10);
            Z.inputmass(-100, 100);
            Z.outputmass(textBox2, textBox6, textBox5);
            Z.SortirovkaM3();
            Z.outputmass(textBox2, textBox6, textBox5);
        }
 
        private void button4_Click_1(object sender, EventArgs e)
        {
            VstavkaM12 Z = new VstavkaM12(10);
            Z.inputFile(openFileDialog1);
            Z.outputmass(textBox2, textBox6, textBox5);
            Z.SortirovkaM3();
            Z.outputmass(textBox2, textBox6, textBox5);
        }
 
    }
}

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


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

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

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