您的位置:首页 > 编程语言 > C#

将链表逆序(Revert)的C#实现

2012-02-27 12:29 162 查看
// 链表类
class LL
{
public string value;
public LL link;
// used for outputing the link data
public void OutPut()
{
Console.Write(value);
if (link != null)
{
Console.Write(",");
link.OutPut();
}
}
}

逆序:
private LL Revert(LL t)
{
LL newList = null;
while (t != null)
{
LL mid = new LL();
mid.value = t.value;
mid.link = newList;

newList = mid;
t = t.link;
}
return newList;
}
全部代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _08ConsoleTest
{
class Program
{
static void Main(string[] args)
{
Test t = new Test();
t.T1();
}

}
public class Test
{
public void T1()
{
// Create a Link
LL l = CreateLL("A");
LL l2 = CreateLL("B");
l.link = l2;
l2.link = CreateLL("C");

OutputLL(l); // Output the original link: A B C
LL revertLL = Revert(l);
OutputLL(revertLL); // Output the target link: C B A
OutputLL(l); // Output the original link: A B C (The original link will not change)
}
private void OutputLL(LL l)
{
l.OutPut();
Console.WriteLine("---------------");
}
private LL Revert(LL t)
{
LL newList = null;
while (t != null)
{
LL mid = new LL();
mid.value = t.value;
mid.link = newList;

newList = mid;
t = t.link;
}
return newList;
}
private LL CreateLL(string a)
{
LL l = new LL();
l.value = a;
return l;
}
}
// 链表类
class LL
{
public string value;
public LL link;
// used for outputing the link data
public void OutPut()
{
Console.Write(value);
if (link != null)
{
Console.Write(",");
link.OutPut();
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: