static void Main(string[] args) { LinkList<string> seq = new LinkList<string>(); //try //{ //} //catch (FormatException) //{ // throw; //} seq.Add("11"); seq.Add("22"); seq.Add("33"); seq.Add("44"); seq.Add("55"); seq.Insert("7", 3); Console.WriteLine(seq.GetEle(1)); Console.WriteLine(seq.GetEle(2)); Console.WriteLine(seq.GetEle(3)); Console.WriteLine(seq.GetEle(4)); Console.WriteLine(seq.GetEle(5)); seq.Delete(3); Console.WriteLine(seq.GetEle(3)); Console.WriteLine(seq.GetEle(4)); Console.ReadKey(); }
public static LinkList AsWebModel(this services.LinkList list) { var listModel = new LinkList(); listModel.InjectFrom(list); listModel.Handle = list.Name; listModel.Links = list.Links != null ? list.Links.Select(l => l.AsWebModel()) : new List<Link>(); return listModel; }
public void TestAsserLinkList() { LinkList<int> A = new LinkList<int>(); A.Append(1); A.Append(2); A.Append(3); A.Append(4); //Get //Стандартное решение int testnum = A.Get(1); Assert.AreEqual(2, testnum); //Граничное решение testnum = A.Get(A.collElem - 1); Assert.AreEqual(4, testnum); //Delete //Стандартное решение A.Delete(2); testnum = A.Get(2); Assert.AreEqual(4, testnum); //Граничное решение A.Delete(A.collElem - 1); testnum = A.Get(A.collElem - 1); Assert.AreEqual(2, testnum); //FindElem LinkList<int> B = new LinkList<int>(); B.Append(1); B.Append(2); B.Append(3); B.Append(4); //Стандартное решение testnum = B.FindElem(3); Assert.AreEqual(2, testnum); //Исключительная ситуация testnum = B.FindElem(10); Assert.AreEqual(-1, testnum); //Insert //Стандартное решение B.Insert(42, 3); Assert.AreEqual(42, B.Get(3)); //Граничное решение int index = B.collElem; B.Insert(42, index); Assert.AreEqual(42, B.Get(index)); }
LinkList changeDragPoint(string point) { int count = 0; LinkList newList = new LinkList (); for(int i=0;i<GameControl.mLinks.Length();i++) newList.Insert(i,GameControl.mLinks.get_Listnode(i+1)); for (int i=1; i<newList.Length(); i++) { if(newList.get_Listnode(i).Equals(GameObject.Find(point).GetComponent<LinePoints>().point1)&&newList.get_Listnode(i+1).Equals(GameObject.Find(point).GetComponent<LinePoints>().point2)&&count==0) { newList.Insert(i,"dragObj"); count++; } } return newList; }
static void Main(string[] args) { //1.使用BCL中的List线性表 //List<string> strList = new List<string>(); //strList.Add("123"); //strList.Add("456"); //strList.Add("789"); //Console.WriteLine(strList[1]); //strList.Remove("789"); //Console.WriteLine(strList.Count); //strList.Clear(); //Console.WriteLine(strList.Count); //Console.ReadKey(); //SeqList<string > seqList = new SeqList<string>(); LinkList<string> seqList = new LinkList<string>(); seqList.Add("123"); seqList.Add("456"); seqList.Add("789"); Console.WriteLine(seqList.GetEle(0)); Console.WriteLine(seqList[0]); seqList.Insert("777",1); for (int i = 0; i < seqList.GetLength(); i++) { Console.Write(seqList[i] + " "); } Console.WriteLine(); seqList.Delete(0); for (int i = 0; i < seqList.GetLength(); i++) { Console.Write(seqList[i] + " "); } Console.WriteLine(); seqList.Clear(); Console.WriteLine(seqList.GetLength()); Console.ReadKey(); }
public override object GetField(Sitecore.Data.Fields.Field field, SitecoreFieldConfiguration config, SitecoreDataMappingContext context) { if (field == null || string.IsNullOrEmpty(field.Value.Trim())) return null; List<Link> links = new List<Link>(); Monoco.CMS.Fields.LinkListField linksField = new Monoco.CMS.Fields.LinkListField(field); foreach (var link in linksField.Links) { links.Add(link); } LinkList linkList = new LinkList(links); return linkList; }
LinkList changeDragPoint(string point) { int count = 0; LinkList newList = new LinkList (); for(int i=0;i<GameControl.mLinks.Length();i++) newList.Insert(i,GameControl.mLinks.get_Listnode(i+1)); for (int i=1; i<=newList.Length(); i++) { if(newList.get_Listnode(i).Equals(point)&&count==0) { newList.Delete(i); newList.Insert(i-1,"dragObj"); count=1; } } if (newList.get_Listnode (1).Equals ("dragObj")) { newList.Delete (newList.Length()); newList.Insert(newList.Length(),"dragObj"); } return newList; }
/// <summary> /// /// </summary> /// <param name="array"></param> /// <param name="m">最大位数</param> public int[] Sort(int[] array, int m) { IList <int> finalList = new LinkList <Node, int>(); IList <int>[] tempLists = new LinkList <Node, int> [10]; int[] tempArray = array; for (int i = 0; i < 10; i++) { tempLists[i] = new LinkList <Node, int>(); } for (int i = 0; i < m; i++) { //放入链表中 foreach (int num in tempArray) { //求位数 int temp = num; temp = temp / (int)Math.Pow(10, i); int l = temp % 10; tempLists[l].Append(num); } //记录取了第几个数 int n = 0; //从链表中取出放到新数组里 for (int l = 0; l < 10; l++) { Node node = (Node)tempLists[l].Header().Next; while (node != null) { tempArray[n] = node.Value; node = (Node)node.Next; n++; } //清空链表 tempLists[l].MakeEmpty(); } } return(tempArray); }
public void ZipTest(object expected, int input) { LinkList One = new LinkList(); LinkList Two = new LinkList(); One.Append(new Node("A")); One.Append(new Node("B")); One.Append(new Node("C")); One.Append(new Node("D")); Two.Append(new Node("One")); Two.Append(new Node("Two")); LinkList Three = Merge(One, Two); Three.Current = Three.Head; for (int i = 0; i < input; i++) { Three.Current = Three.Current.Next; } Assert.Equal(expected, Three.Current.Data); }
public void Return_Null_If_K_Is_Larger_Than_List(int value) { //Arrange LinkList ll = new LinkList(new Node(4)); Node node = new Node(8); Node node2 = new Node(15); Node node3 = new Node(16); Node node4 = new Node(23); ll.Add(node); ll.Add(node2); ll.Add(node3); ll.Add(node4); //Act Node output = ll.KthElementFromEnd(value); //Assert Assert.Null(output); }
public void FindingKElement(int value, int expectedResult) { //Arrange LinkList ll = new LinkList(new Node(4)); Node node = new Node(8); Node node2 = new Node(15); Node node3 = new Node(16); Node node4 = new Node(23); ll.Add(node); ll.Add(node2); ll.Add(node3); ll.Add(node4); //Act Node output = ll.KthElementFromEnd(value); //Assert Assert.Equal(output.Value, expectedResult); }
public void AddAfterTestTwo() { LinkList TestList = new LinkList(); TestList.AddToHead(new Node("Hello")); TestList.AddToHead(new Node("Crazy")); TestList.AddToHead(new Node("World")); TestList.AddAfter(new Node("Creazy"), new Node("Crazy")); int count = 0; TestList.Current = TestList.Head; while (TestList.Current != null) { count++; if (TestList.Current.Data == new Node("Creazy").Data) { break; } TestList.Current = TestList.Current.Next; } Assert.Equal(3, count); }
public void TestAppendAddsNodeToEndOfLinkedList() { //Arrange LinkList newLinkList = new LinkList(); newLinkList.Insert(1); newLinkList.Insert(2); newLinkList.Insert(3); newLinkList.Insert(4); int value = 99; Node CurrentNode = newLinkList.Head; //Act newLinkList.Append(value); while (CurrentNode.Next != null) // Loop until the end Node of the linked list { CurrentNode = CurrentNode.Next; } //Assert Assert.Equal(value, CurrentNode.Value); }
public void TestMergeListsCorrectlyMergesTwoLinkedLists() { //Arrange LinkList newLinkList1 = new LinkList(); newLinkList1.Insert(2); newLinkList1.Insert(3); newLinkList1.Insert(1); LinkList newLinkList2 = new LinkList(); newLinkList2.Insert(4); newLinkList2.Insert(9); newLinkList2.Insert(5); string expectedString = "{1} -> {5} -> {3} -> {9} -> {2} -> {4} -> NULL"; //Act Program.MergeLists(newLinkList1, newLinkList2); //Assert Assert.Equal(expectedString, newLinkList1.ToString()); }
static void Main(string[] args) { Console.WriteLine("Hello World!"); LinkList test1 = new LinkList { Head = new Node { Value = 1, Next = new Node { Value = 3, Next = new Node { Value = 2 } } } }; LinkList test2 = new LinkList { Head = new Node { Value = 5, Next = new Node { Value = 9, Next = new Node { Value = 4 } } } }; LinkList zipped = MergeLists(test1, test2); Console.WriteLine(zipped.ToString()); }
public void MergeListsWorks() { LinkList list1 = new LinkList(); LinkList list2 = new LinkList(); for (int i = 0; i < 6; i++) { if (i % 2 == 0) { list1.Append(i); } else { list2.Append(i); } } LinkList merged = Program.MergeLists(list1, list2); string expected = "0 -> 1 -> 2 -> 3 -> 4 -> 5"; Assert.Equal(expected, merged.Print()); }
public void DetermineIfKIsEqualToLinkedListLengthWhenLocatingKthElement() { LinkList ll = new LinkList(); ll.Insert(3); ll.Append(9); ll.Append(19); ll.Append(27); ll.Append(42); int kthElement = 5; int listLength = 0; Node current = ll.Head; while (current != null) { current = current.Next; listLength++; } Assert.Equal(listLength, kthElement); }
public void DeleteLink(DesignLink link) { if (LinkList.Contains(link)) { LinkList.Remove(link); } ItemList.ForEach(v => { if (v.InLinkList.Contains(link)) { v.InLinkList.Remove(link); } if (v.OutLinkList.Contains(link)) { v.OutLinkList.Remove(link); } }); var s = ItemList.FirstOrDefault(v => v.DesignItemID == link.SourceDesignItemID); var t = ItemList.FirstOrDefault(v => v.DesignItemID == link.TargetDesignItemID); if (s == null || t == null) { return; } var l = LinkList.Where(v => v.SourceDesignItemID == link.SourceDesignItemID && v.TargetDesignItemID == link.TargetDesignItemID && v.TargetPosition == link.TargetPosition && v.SourcePosition == link.SourcePosition && link != v).ToList(); if (l.Count > 0) { l.ForEach(tl => { tl.RadiusRadio = 0; tl.LineSweepDirection = Windows.UI.Xaml.Media.SweepDirection.Clockwise; }); l.ForEach(tl => tl.SetCurveRadius(s, t)); } }
public void CanSearchForK(int value, int expected) { //arrange LinkList ll = new LinkList(); Node node = new Node(4); Node node2 = new Node(8); Node node3 = new Node(15); Node node4 = new Node(16); Node node5 = new Node(23); ll.Add(node); ll.Add(node2); ll.Add(node3); ll.Add(node4); ll.Add(node5); //act Node found = ll.KthElementFromEnd(value); //assert Assert.Equal(expected, found.Value); }
public void LinkListHeadIsFirstNode() { LinkList list = new LinkList(); list.Insert(5); list.Insert(18); list.Insert(71); Node current = list.Head; bool headIsFirst = true; while (current != null) { // Checking if the head node, the last inserted, comes AFTER any other node in the list if (current.Next == list.Head) { headIsFirst = false; } current = current.Next; } Assert.True(headIsFirst); }
protected override void CreateHypermedia() { var baseUri = BaseUrlResolver.GetBaseUrl(); LinkList.Clear(); LinkList.Add(new LinkType("self", baseUri + "api/arkivstruktur/Mappe/" + this.systemID)); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/mappe", baseUri + "api/arkivstruktur/Mappe/" + this.systemID)); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/avslutt-mappe", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/avslutt")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/sakarkiv/utvid-til-saksmappe", baseUri + "api/sakarkiv/Saksmappe/" + this.systemID + "/utvid-til-saksmappe")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/registrering", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/registrering{?$filter&$orderby&$top&$skip&$search}")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/ny-registrering", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/ny-registrering")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/merknad", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/merknad{?$filter&$orderby&$top&$skip&$search}")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/ny-merknad", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/ny-merknad")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/undermappe", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/undermappe{?$filter&$orderby&$top&$skip&$search}")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/ny-undermappe", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/ny-undermappe")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/kryssreferanse", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/kryssreferanse{?$filter&$orderby&$top&$skip&$search}")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/ny-kryssreferanse", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/ny-kryssreferanse")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/klasse", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/klasse")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/arkivdel", baseUri + "api/arkivstruktur/Mappe/" + this.systemID + "/arkivdel")); }
public void CanZipEqualLists() { LinkList test1 = new LinkList { Head = new Node { Value = 1, Next = new Node { Value = 2, Next = new Node { Value = 5 } } } }; LinkList test2 = new LinkList { Head = new Node { Value = 1, Next = new Node { Value = 3, Next = new Node { Value = 8 } } } }; LinkList zipped = LLMerge.Program.MergeLists(test1, test2); Assert.Equal("{ 1 } -> { 1 } -> { 2 } -> { 3 } -> { 5 } -> { 8 } -> NULL", zipped.ToString()); }
public void CanMergeUnevenWhereFirstListIsShorter() { //Arrange LinkList llOne = new LinkList(); llOne.Add(new Node(41)); llOne.Add(new Node(8)); LinkList llTwo = new LinkList(); llTwo.Add(new Node(51)); llTwo.Add(new Node(18)); llTwo.Add(new Node(12)); llTwo.Add(new Node(2)); //Act llOne.Merge2(llOne, llTwo); //Node found = llThree.Find(value); //Assert (expected, actual) Assert.Equal(llOne.Head, llOne.Merge2(llOne, llTwo)); }
public void CountedNodesAreAdded() { // Arrange LinkList ll = new LinkList(new Node(4)); Node node = new Node(8); Node node2 = new Node(15); //Act ll.Add(node); ll.Add(node2); int number = ll.CountNodes(); /* * 15 <- 8 <- 4 */ //Assert Assert.Equal(3, number); }
public void MergeListDestroysList2WhenEvenWhenList2IsLonger() { LinkList list1 = new LinkList(); LinkList list2 = new LinkList(); for (int i = 0; i < 6; i++) { if (i % 2 == 1) { list2.Append(i); } else { list1.Append(i); } } list2.Append(6); list2.Append(7); LinkList merged = Program.MergeLists(list1, list2); Assert.Null(list2.Head); }
/// <summary> /// 链表反转 /// </summary> /// <param name="_l"></param> /// <returns></returns> /// public void ReverseLinkList(LinkList <int> _l) { Node <int> _head, _p, _q; _head = _l.Head; _q = _head.Next; _p = null; int count = 0; Debug.Log(3); //while (count<5) //{ // Debug.Log(4); // count++; // _head.Data = _q.Data; // _p = _q.Next; // _q.Next = _head; // _head = _q; // _q = _p; //} }
protected override void CreateHypermedia() { var baseUri = BaseUrlResolver.GetBaseUrl(); LinkList.Clear(); LinkList.Add(new LinkType("self", baseUri + "api/arkivstruktur/Arkiv/" + this.systemID)); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/arkiv", baseUri + "api/arkivstruktur/Arkiv/" + this.systemID)); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/arkivdel", baseUri + "api/arkivstruktur/Arkiv/" + this.systemID + "/arkivdel{?$filter&$orderby&$top&$skip&$search}")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/ny-arkivdel", baseUri + "api/arkivstruktur/Arkiv/" + this.systemID + "/ny-arkivdel")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/arkivskaper", baseUri + "api/arkivstruktur/Arkiv/" + this.systemID + "/arkivskaper{?$filter&$orderby&$top&$skip&$search}")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/arkivstruktur/ny-arkivskaper", baseUri + "api/arkivstruktur/Arkiv/" + this.systemID + "/ny-arkivskaper")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/administrasjon/dokumentmedium", baseUri + "api/kodelister/Dokumentmedium{?$filter&$orderby&$top&$skip}")); LinkList.Add(new LinkType("http://rel.arkivverket.no/noark5/v4/api/administrasjon/arkivstatus", baseUri + "api/kodelister/Arkivstatus{?$filter&$orderby&$top&$skip}")); }
/// <summary> ///Insert 的测试 ///</summary> public void InsertTestHelper <T>() { LinkList <int> target = (LinkList <int>)TestList.Clone(); // TODO: 初始化为适当的值 //头 int node = -1; // TODO: 初始化为适当的值 int i = 0; // TODO: 初始化为适当的值 int expected = 0; target.InsertAfter(node, i); Assert.AreEqual <int>(4, target.GetLength()); Assert.AreEqual <int>(-1, target.Head.Next.Data); target = (LinkList <int>)TestList.Clone(); node = 2; i = 1; target.InsertAfter(node, i); Assert.AreEqual <int>(4, target.GetLength()); Assert.AreEqual <int>(0, target.Locate(1)); Assert.AreEqual <int>(1, target.Locate(100)); Assert.AreEqual <int>(2, target.Locate(2)); Assert.AreEqual <int>(3, target.Locate(40)); }
//将两个单链表进行混合得到总的单链表 O((m+n)*k) static LinkList <int> MergeLast(LinkList <int> la, LinkList <int> lb) { Node <int> p = la.Head; Node <int> q = lb.Head; LinkList <int> lc = new LinkList <int>(); Node <int> s = new Node <int>(); while (p != null && q != null) { if (p.Data < q.Data) { s = p; p = p.Next; } else { s = q; q = q.Next; } lc.Append(s.Data); } if (p == null) { p = q; } while (p != null) { s = p; p = p.Next; lc.Append(s.Data); } return(lc); }
private void LoadLinkList() { DateTime fromDate; DateTime untilDate; List <int> selectedLinkRefList = GetPostCollection("LinkSelectionCheckBox"); try { fromDate = DateHandler.ParseDateString(FromDateTextBox.Text); untilDate = DateHandler.ParseDateString(UntilDateTextBox.Text); } catch { return; } using (var db = CLinq.DataContext.Create()) { var linkQuery = from li in db.Links where li.LinkDate.Date >= fromDate && li.LinkDate.Date <= untilDate orderby li.LinkDate descending select new { li.LinkRef, li.LinkName, li.LinkDate, li.CategoryRef, CategoryName = li.Category.CategoryName, UserName = li.UserRef != null ? li.User.UserName : "", li.LinkUrl, li.Clicks, li.Rating, IsChecked = selectedLinkRefList.Contains(li.LinkRef) }; LinkList.DataSource = linkQuery.ToList(); LinkList.DataBind(); } }
/// <summary> /// Filters data from the source list that meets filtering criterion and writes them /// into the new list. /// THE STUDENT SHOULD IMPLEMENT THIS GENERIC METHOD ACCORDING THE TASK. /// THE STUDENT SHOULDN'T CHANGE THE SIGNATURE OF THE METHOD! /// </summary> /// <typeparam name="TData">The type of the data objects stored in the list</typeparam> /// <typeparam name="TCriterion">The type of criteria</typeparam> /// <param name="source">The source list from which the result would be created</param> /// <param name="criterion">Criterion that the object from source list should meet in /// order to fall in result list</param> /// <returns>The list that contains filtered data</returns> public static LinkList <TData> Filter <TData, TCriterion>(LinkList <TData> source, TCriterion criterion) where TData : IComparable <TData>, IEquatable <TCriterion> { LinkList <TData> list = new LinkList <TData>(); for (source.Begin(); source.Exist(); source.Next()) { TData temp = source.Get(); if (temp is Player) { Player player = (Player)(object)temp; if (criterion is string) { string criteria = (string)(object)criterion.ToString().Trim(); if (player.Equals(criteria)) { list.Add(temp); } } if (criterion is int) { int criteria = (int)(object)criterion; if (player.Equals(criteria)) { list.Add(temp); } } } } return(list); }
private void Resize() { // From the SDK docs: // Hashtable is automatically increased // to the smallest prime number that is larger // than twice the current number of Hashtable buckets int newSize = HashPrimeNumbers.ToPrime((table.Length << 1) | 1); // allocate new hash table and link slots array int[] newTable = new int[newSize]; LinkList[] newLinkSlots = new LinkList[newSize]; for (int i = 0; i < table.Length; i++) { int cur = table[i] - 1; while (cur != NO_SLOT) { int hashCode = newLinkSlots[cur].HashCode = hcp.GetHashCode(keySlots[cur]) | HASH_FLAG; int index = (hashCode & int.MaxValue) % newSize; newLinkSlots[cur].Next = newTable[index] - 1; newTable[index] = cur + 1; cur = linkSlots[cur].Next; } } table = newTable; linkSlots = newLinkSlots; // allocate new data slots, copy data TKey[] newKeySlots = new TKey[newSize]; TValue[] newValueSlots = new TValue[newSize]; Array.Copy(keySlots, 0, newKeySlots, 0, touchedSlots); Array.Copy(valueSlots, 0, newValueSlots, 0, touchedSlots); keySlots = newKeySlots; valueSlots = newValueSlots; threshold = (int)(newSize * DEFAULT_LOAD_FACTOR); }
public void Run() { LinkList <long> list = new LinkList <long>(); Console.WriteLine("Fill list"); FillList(list); var iter = list.GetIterator(); int count = 1; while (true) { if (count % 10 == 0) { Console.WriteLine(); } var it = iter.GetCurrent(); Console.Write(it + " "); bool res = iter.MoveNext(); if (res == false) { break; } count++; } iter.Reset(); Console.WriteLine("End"); iter.MoveNext(); iter.MoveNext(); iter.AddBefore(20L); iter.MoveNext(); iter.MoveNext(); iter.AddAfter(15L); list.RemoveKey(15L); DeleteFromList(list); }
/// <summary> /// accounts for null user inputs for one, the other, or both link lists /// if both lists are valid with proper nodes /// then the while loop is set up to repoint each node in one link list /// to the next node in the other link list /// will repeat until one link list runs out of node /// then the nodes will point at the remaining nodes in the other link /// list /// </summary> /// <param name="One">first LL input</param> /// <param name="Two">second LL input</param> /// <returns></returns> public static LinkList Merge(LinkList One, LinkList Two) { LinkList Result = new LinkList(); if (One.Head == null && Two.Head != null) { Result = Two; return(Result); } else if (One.Head != null && Two.Head == null) { Result = One; return(Result); } else if (One.Head == null && Two.Head == null) { return(Result); } else { Result.Head = One.Head; Result.Current = Result.Head; One.Current = One.Head; Two.Current = Two.Head; while (One.Current != null && Two.Current != null) { Node TempOne = One.Current.Next; Node TempTwo = Two.Current.Next; One.Current.Next = Two.Current; Two.Current.Next = TempOne; One.Current = TempOne; Two.Current = TempTwo; } return(Result); } }
/// <summary> /// 入力されたgraphにおける、nodeIdから到達可能なノードを返すメソッド。 /// Queueを用いた幅優先探索を行う。 /// </summary> /// <param name="graph">グラフ</param> /// <param name="nodeId">ノードID</param> /// <returns>ノードIDから到達可能な点の配列</returns> public static int[] CalcBreadth(AdjacencyList graph, int nodeId) { // 作業領域を確保 HashTable results = new HashTable( (graph.NodeNum < int.MaxValue / 10) ? graph.NodeNum * 10 : graph.NodeNum); Queue <int> nodeQ = new Queue <int>(graph.NodeNum); bool[] visited = new bool[graph.NodeNum]; // 初期化 results.Add(nodeId); nodeQ.Enqueue(nodeId); visited[nodeId] = true; // メインループ while (nodeQ.Count != 0) { int v = nodeQ.Dequeue(); LinkList list = graph.GetOutLinkedEdgeList(v); // ノードvから出ているノードを検索 for (LinkNode node = list.head; node != null; node = node.next) { int w = GraphUtil.GetOpposite(v, graph.EdgeList[node.data]); results.Add(w); if (!visited[w]) { visited[w] = true; nodeQ.Enqueue(w); } } } return(results.ToArray()); }
static void Main(string[] args) { LinkList list1 = new LinkList(); LinkList list2 = new LinkList(); for (int i = 0; i < 6; i++) { if (i % 2 == 0) { list1.Append(i); } else { list2.Append(i); } } Console.WriteLine($"List 1: {list1.Print()}"); Console.WriteLine($"List 2: {list2.Print()}"); LinkList merged = MergeLists(list1, list2); Console.WriteLine($"Merged: {merged.Print()}"); }
public SpanDataTest() { spanContext = SpanContext.Create(TraceId.GenerateRandomId(random), SpanId.GenerateRandomId(random), TraceOptions.DEFAULT); parentSpanId = SpanId.GenerateRandomId(random); attributesMap.Add("MyAttributeKey1", AttributeValue.LongAttributeValue(10)); attributesMap.Add("MyAttributeKey2", AttributeValue.BooleanAttributeValue(true)); attributes = Attributes.Create(attributesMap, 1); annotationsList.Add(TimedEvent <IAnnotation> .Create(eventTimestamp1, annotation)); annotationsList.Add(TimedEvent <IAnnotation> .Create(eventTimestamp3, annotation)); annotations = TimedEvents <IAnnotation> .Create(annotationsList, 2); //networkEventsList.add(SpanData.TimedEvent.Create(eventTimestamp1, recvNetworkEvent)); //networkEventsList.add(SpanData.TimedEvent.Create(eventTimestamp2, sentNetworkEvent)); //networkEvents = TimedEvents.Create(networkEventsList, 3); messageEventsList.Add(TimedEvent <IMessageEvent> .Create(eventTimestamp1, recvMessageEvent)); messageEventsList.Add(TimedEvent <IMessageEvent> .Create(eventTimestamp2, sentMessageEvent)); messageEvents = TimedEvents <IMessageEvent> .Create(messageEventsList, 3); linksList.Add(Link.FromSpanContext(spanContext, LinkType.CHILD_LINKED_SPAN)); links = LinkList.Create(linksList, 0); }
public LinkList (SingleValue<string> item, LinkList prev) { this.item = item; this.prev = prev; }
static void Main(string[] args) { string url = args[0]; string host; if (url.Contains("http")) { Console.WriteLine("Scanning"); LinkScrapper ls = new LinkScrapper(url); host = ls.Host; LinkList<Link> linkslist = new LinkList<Link>(); foreach (var link in ls.HRefList) { Link lt = new Link(link, ls.Host); linkslist.Add(lt); } //write xml if (args.Contains("/xml")) { System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(linkslist.GetType()); x.Serialize(XmlWriter.Create("LinkResults.xml"), linkslist); } //write xml if (args.Contains("/csv")) { string filePath = @"LinkResults.csv"; StringBuilder sb = new StringBuilder(); sb.AppendLine("HyperReference" + "," + "Link" + "," + "StatusCode"); foreach (Link link in linkslist) { sb.AppendLine(link.Href + "," + link.code + "," + link.StatusCode); } File.WriteAllText(filePath, sb.ToString()); } //write xml if (args.Contains("/output")) { foreach (Link lt in linkslist) { Console.WriteLine(lt.code + " : " + lt.StatusCode + " : " + lt.Href); } Console.WriteLine("Complete"); } } else { Console.WriteLine("Site must be formated with complete url. Must include http, Example http://www.google.com "); } Console.ReadLine(); }
public override void reflectPlane (LinkList pointStr) { reflectPos=new Vector3[pointStr.Length()]; base.setPointStr(pointStr); base.setPointPos (); for (int i=0; i<allPointPos.Length; i++) { float x=allPointPos[i].x+(point1.x-allPointPos[i].x)*2; reflectPos[i]=new Vector3(x,allPointPos[i].y,allPointPos[i].z); } GameObject refPlane = new GameObject ("horizPlane"); refPlane.tag = "reflectObj"; for (int i=0; i<reflectPos.Length-1; i++) { MLine line = new MLine (reflectPos[i],reflectPos[i+1],refPlane.transform,"reflectline"); GameObject.Destroy(line.obj.GetComponent<dragLine>()); line.obj.tag="refLine"; } }
public LinkList JoinPrev (LinkList prev) { this.prev = prev; return this; }
static LinkList Reverse (LinkList l) { // Algorithm copied from g_slist_reverse. // Reverses in-place LinkList prev = null; while (l != null) { LinkList next = l.prev; l.prev = prev; prev = l; l = next; } return prev; }
void ApplyOrderedDeps (LinkList list) { list = Reverse (list); if (cur_arg_name == null) for (; list != null; list = list.prev) cur_targ.AddDefaultOrdered (list.item); else for (; list != null; list = list.prev) cur_targ.AddDep (cur_arg_name, list.item); }
//Vector3s public List<Vector3> getPoint(LinkList _points) { mPlane.name = ""; points = new List<Vector3> (); for (int i=1; i<_points.Length(); i++) { points.Add(GameObject.Find(_points.get_Listnode(i)).transform.position); mPlane.name+=_points.get_Listnode(i); } mPlane.AddComponent<MeshFilter> (); mPlane.AddComponent<MeshRenderer> (); mPlane.transform.position=new Vector3(0,0,-0.5f); mPlane.tag = "plane"; return points; }
// Formatted string void SetupFormat (string format, LinkList list) { cur_constructed.tb.TemplateName = "Core.FormatHelper"; cur_constructed.tb.AddDep ("format", new MBString (format)); list = Reverse (list); for (; list != null; list = list.prev) cur_constructed.tb.AddDefaultOrdered (list.item); }
public void setPointStr(LinkList point) { mPoints = point; }
public void TestLinkList() { ILinearList<string> list = new LinkList<string>(); TestLinearList(list); }
public virtual void reflectPlane(LinkList pointStr) { }