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