順序表是在計算機內存中以數組的形式保存的線性表,是指用一組地址連續(xù)的存儲單元依次存儲數據元素的線性結構。 單向鏈表是鏈表的一種,其特點是鏈表的鏈接方向是單向的,對鏈表的訪問要通過順序讀取從頭部開始。 雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數據結點中都有兩個指針,分別指向直接后繼和直接前驅。所以,從雙向鏈表中的任意一個結點開始,都可以很方便地訪問它的前驅結點和后繼結點。下面的代碼中了解一下Snake.Net中的線性表
namespace Eastasp.Framework.Collections

{
namespace#region namespace
using System;
using System.Collections;
using Collections;
using Diagnostics;
using Utility;
using NUnit.Framework;
#endregion

class for CollectionTest#region class for CollectionTest
/**//// <summary>
/// Summary description for CollectionTest.
/// </summary>
[TestFixture]
public class CollectionTest:ITest
{
public CollectionTest()
{
}
[Test]
public void Test()
{
OutputLinks();
}
PRivate void OutputLinks()
{
//declare
ILink[] links;
//output start infomation
Console.Write("------- Starttest Links -------{0}{0}{0}", StringUtil.CrLf);

links = new ILink[]
{
new OrderedTable(),
new SingleLink(),
new DoubleLink()};

for(int i = 0; i < links.Length; i++)
{
Console.Write("Start Test {0} {1}", links[i].GetType().FullName, StringUtil.CrLf);
OutputLink(links[i]);
Console.Write("Test Completed{1}{1}", links[i].GetType().FullName, StringUtil.CrLf);
}
//output end infomation
Console.Write("{0}{0}------- End test Links -------{0}{0}", StringUtil.CrLf);
}
private void OutputLink(ILink link)
{
//declare
object[] array;
DateTime start;
DateTime end;
TimeSpan passed;
start = DateTime.Now;
Console.Write(String.Format("Start date time:{0}{1}", start.ToString("MM/dd/yyyy HH:mm:ss"), StringUtil.CrLf));

for(int i = 0; i < 10000; i++)
{
link.Clear();
//initialize
array = new object[]
{"aaa", "bbb", "ccc", "ddd", "eee", "hhh", "fff", "ggg", "bb2", "cc2", "dd2", "ee2", "hh2", "ff2", "gg2", "iii", "jjj", "kkk"};
link.AddRange(array);
Assert.AreEqual(link.Count, array.Length, "Error!");
link.Add("000");
Assert.AreEqual(link.Count, array.Length + 1, "Error!");
link.Remove("ddd");
Assert.AreEqual(link.Count, array.Length, "Error!");
link.Insert(3, "222");
Assert.AreEqual(link.Count, array.Length + 1, "Error!");
link.RemoveAt(2);
Assert.AreEqual(link.Count, array.Length, "Error!");
}
end = DateTime.Now;
passed = new TimeSpan(end.Ticks - start.Ticks);
Console.Write(String.Format("End date time:{0}{1}", end.ToString("MM/dd/yyyy HH:mm:ss"), StringUtil.CrLf));
Console.Write(string.Format("spend {0} seconds, {1} milliseconds {2}", passed.Seconds, passed.Milliseconds, StringUtil.CrLf));
}
}
#endregion
}
namespace Eastasp.Framework.Collections

{
namespace#region namespace
using System;
using System.Collections;
using Collections;
using Diagnostics;
using Utility;
using NUnit.Framework;
#endregion

class for CollectionTest#region class for CollectionTest
/**//// <summary>
/// Summary description for CollectionTest.
/// </summary>
[TestFixture]
public class CollectionTest:ITest
{
public CollectionTest()
{
}
[Test]
public void Test()新聞熱點
疑難解答