Динамический список поменять адрес элемент с 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д