PTA02-1第一次版本C#
来源:互联网 发布:g92车直螺纹编程实例 编辑:程序博客网 时间:2024/06/05 09:46
<ol><li><span style="font-family: Arial, Helvetica, sans-serif;">using System;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">using System.Collections.Generic;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">using System.Linq;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">using System.Text;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">using System.Threading.Tasks;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">using System.IO;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">namespace MyReverLinkedList</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> class Program</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> static void Main(string[] args)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> List<Node<string, string>> list = new List<Node<string, string>>();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> List<Node<string, string>> listAddress = new List<Node<string, string>>();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> string input = acceptmultiLineChars2();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> string[] inputs = input.Replace("\r\n\r", "\r").Replace("\r\n\n", "").Split('\r');</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> //string input = File.ReadAllText("1.txt");</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> //string[] inputs = input.Replace("\r\n", "\r").Split('\r');</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> </span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> int x = inputs.Count();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> string[] aa =inputs[0].Split(' ');</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> string headAddress = aa[0];</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> int reverseLength = int.Parse(aa[2]);</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> string[,] inputLinesValue = new string[x, 3];</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> for (int i = 1; i < x; i++)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> string[] inputLines = inputs[i].Split(' ');</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> int y = inputLines.Count();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> for (int m = 0; m < y; m++)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> { </span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> inputLinesValue[i,m] = inputLines[m];</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> Node<string, string> n = new Node<string, string>(inputLinesValue[i,1],inputLinesValue[i,0],inputLinesValue[i,2]);</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> list.Add(n);</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> do</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> foreach (Node<string, string> item in list)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> if (item.CurrentAddress == headAddress)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> listAddress.Add(item);</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> headAddress = item.NextAddress;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> } while (listAddress.Count() < list.Count());</span></li><li></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> //ReverList(listAddress, reverseLength);</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> foreach (var item in listAddress)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> Console.WriteLine(item.CurrentAddress + " " + item.Data + " " + item.NextAddress);</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> //Console.Read();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> private static void ReverList(List<Node<string, string>> listAddress, int reverseLength)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> int laCount = listAddress.Count();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> int revCount = laCount / reverseLength;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> for (int revLen = 0; revLen < revCount; revLen++)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> listAddress.Reverse(revLen * revCount, reverseLength);</span></li><li></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> for (int i = 0; i < laCount; i++)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> int lastIndex = -1;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> string lastNextAddress = lastIndex.ToString();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> listAddress[laCount - 1].NextAddress = lastNextAddress;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> if (listAddress[i].NextAddress != lastNextAddress)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> listAddress[i].NextAddress = listAddress[i + 1].CurrentAddress;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> static string acceptmultiLineChars2()</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> ConsoleKeyInfo cki;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> //Console.TreatControlCAsInput = true;//防止Ctrl+C复制</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> Console.WriteLine("Press the CTRL+Enter key to quit: \n");</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> string result = string.Empty;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> do</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> cki = Console.ReadKey();</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> if (cki.Key == ConsoleKey.Enter)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> result += System.Environment.NewLine;//如果输入回车,则加入换行标志</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> Console.SetCursorPosition(0, Console.CursorTop + 1);//光标下移一行</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> result += cki.KeyChar;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> } while (cki.Key != ConsoleKey.Enter || (cki.Modifiers & ConsoleModifiers.Control) == 0);//按Ctrl+Enter退出</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> return result;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> class Node<T, K></span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> K currentAddrss;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> K nextAddress;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> T data;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> Node<T, K> next;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> public Node()</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> currentAddrss = default(K);</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> nextAddress = default(K);</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> data = default(T);</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> next = null;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> public Node(T value, K currentAddress, K nextAddress)</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> this.data = value;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> this.currentAddrss = currentAddress;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> this.nextAddress = nextAddress;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> public T Data</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> get { return data; }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> set { data = value; }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> public K CurrentAddress</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> get { return currentAddrss; }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> set { currentAddrss = value; }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> public K NextAddress</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> {</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> get { return nextAddress; }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> set { nextAddress = value; }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;"> }</span></li><li><span style="font-family: Arial, Helvetica, sans-serif;">}</span></li></ol>
0 0
- PTA02-1第一次版本C#
- 一元多项式的乘法与加法运算 PTA02-线性结构1
- C#第一次测试
- C#作业(第一次)
- C# 第一次作业
- C# SendMessage 第一次接触
- C#第一次试验
- c#第一次作业
- C#第一次作业
- c#第一次作业
- C#第一次作业
- C#第一次作业
- c#第一次作业
- 第一次C#作业
- C#第一次上机
- c#的第一次亲密接触
- C#的第一次实验作品
- 第一次C#实验--编程分析
- hadoop上传文件到hdfs出错
- 2014.12.12笔记
- Java 获取字符串中的IP地址正则
- 如何定位Android NDK开发中遇到的错误
- RabbitMQ概念及环境搭建(三)RabbitMQ cluster
- PTA02-1第一次版本C#
- 外文翻译---特征空间稳健性分析:彩色图像分割
- MYSQL高可用之复制(MASTER/SLAVE)
- DOS命令字典
- JAVA生成验证码
- dede 修改提示框
- Stack based vs Register based Virtual Machine Architecture, and the Dalvik VM
- 广告人格和任何三天后
- JTAG