// Update is called once per frame void Update() { if (Input.GetKeyDown("escape")) { SceneManager.LoadScene("Menu"); } if (refreshNeeded) { LiList list = listHolder.GetList(); float size = 0; if (list != null) { size = list.getSize(); } Vector3 newPosition = new Vector3(center.x - (size - 1f) * unitSize / 2f, center.y, center.z); listHolder.MoveListTo(newPosition); listHolder.Rearrange(); string listString = listToString(list); outputText.text = listString; /////////////////////////////////////////////// refreshNeeded = false; } }
public LiList DeleteAt(int index) { LiList node = getNodeAt(index); LiList head = findHead(); if (node != null) { LiList prev = node.previous; LiList nx = node.next; if (prev != null) { prev.next = nx; } else { // if head is to be deleted // head = nx; } if (nx != null) { nx.previous = prev; } } return(head); }
public LiList AddAt(int index, GameObject go) { if (index == 0) { return(AddFirst(go)); } LiList prevNode = getNodeAt(index - 1); if (prevNode == null) { prevNode = findTail(); } LiList nextNode = prevNode.next; LiList newEl = new LiList(go, prevNode, nextNode); prevNode.next = newEl; if (nextNode != null) { nextNode.previous = newEl; } return(newEl.findHead()); }
public void InstantiateListAtNull() { ///Test that link list is instantiated with null value LiList testList = new LiList(); Assert.Null(testList.Head); }
public LiList CloneList() { if (listHead == null) { return(null); } LiList current = listHead; LiList newList = null; while (current != null) { GameObject o = current.getData(); GameObject copy = Object.Instantiate(o); LiList newNode = new LiList(copy, null, null); if (newList != null) { newList = newList.AppendList(newNode); } else { newList = newNode; } current = current.getNext(); } return(newList); } // End of CloneList() //
/// <summary> /// Find the kth node from the end of a link list and return the value /// </summary> /// <param name="k">node position to return</param> /// <returns>kth node value from end</returns> public static int FindKthFromEnd(LiList myList, int k) { myList.Current = myList.Head; int counter = 1; if (myList.Current == null) { throw new Exception(); } while (myList.Current.Next != null) /// interrate through linked list to get count, start at one in order to equate for positioning { myList.Current = myList.Current.Next; counter++; } if (k > (counter - 1)) { throw new Exception(); } counter = counter - k; //set new counter eqaul to counter less k to find positioning myList.Current = myList.Head; while (counter > 1) /// interated through until counter less than one to find variable { myList.Current = myList.Current.Next; counter--; /// deduct from counter each iteration } return(myList.Current.Value); }
public LiList DeleteFirst() { LiList head = findHead(); head = head.next; head.previous = null; return(head); }
public void TestIfInsertsValue() { ///Test if insert function will insert accordingly int testNum = 13; LiList testList = new LiList(); testList.Insert(testNum); Assert.Equal(13, testList.Head.Value); }
public void TestIfZeroIncluded() { ///Test if node does not exist, will return false int testNum = 0; LiList testList = new LiList(); testList.Insert(testNum); Assert.True(testList.Includes(testNum)); }
public LiList DeleteLast() { LiList head = findHead(); LiList tail = findTail(); tail = tail.previous; tail.next = null; return(head); }
public LiList AddFirst(GameObject go) { LiList head = this.findHead(); LiList newHead = new LiList(go, null, head); head.previous = newHead; return(newHead); }
public void AddAt(int index, GameObject go) { if (listHead == null) { AddLast(go); } else { listHead = listHead.AddAt(index, go); } }
//////////////////////// intermediate list methods //////////////////////// public void AddLast(GameObject o) { if (listHead == null) { listHead = new LiList(o, null, null); } else { listHead = listHead.AddLast(o); } }
public void TestIfNotIncluded() { ///Test if node does not exist, will return false int testNum = 7; LiList testList = new LiList(); testList.Insert(testNum); int falseValue = 13; Assert.False(testList.Includes(falseValue)); }
public void TestIfInsertsValueAtHeadChanges() { ///Test if insert function will change head value int testNum1 = 33; int testNum2 = 77; LiList testList = new LiList(); testList.Insert(testNum1); testList.Insert(testNum2); Assert.NotEqual(testNum1, testList.Head.Value); }
public void TestAppendToNullList() { ///test appends to null list int testNum = 33; LiList testList = new LiList(); testList.Append(testNum); int expectedValue = 33; Assert.Equal(expectedValue, testList.Head.Value); }
/// <summary> /// Instantiates a New Linked List and inserts new nodes into list /// </summary> /// <param name="num">value of node</param> static void NewList(int num, int num1, int num2) { LiList myList = new LiList(); myList.Insert(num); myList.Insert(num * 2); myList.Insert(num * 3); myList.Insert(num * 4); myList.Print(); myList.InsertAfter(12, 99); myList.Print(); }
public GameObject DeleteAt(int index) { if (listHead == null) { return(null); } GameObject o = GetObjectAt(index); listHead = listHead.DeleteAt(index); return(o); }
public LiList findTail() { LiList el = this; LiList nxt = el.next; while (nxt != null) { el = nxt; nxt = el.next; } return(el); }
public int getSize() { LiList cur = findHead(); int len = 0; while (cur != null) { len++; cur = cur.next; } return(len); }
public LiList AddLast(GameObject go) { LiList tail = this.findTail(); LiList head = this.findHead(); LiList newTail = new LiList(go, tail, null); tail.next = newTail; return(head); }
static void TestKValue(int k, int num) { LiList myList = new LiList(); myList.Insert(num); myList.Insert(num * 2); myList.Insert(num * 3); myList.Insert(num * 4); myList.Print(); Console.WriteLine($"k value: {k}"); Console.WriteLine($"K value from end: {myList.FindKthFromEnd(k)}"); Console.ReadLine(); }
public void SetList(LiList l) { if (l != null) { this.listHead = l.findHead(); targetPosition = this.listHead.getData().transform.position; } else { this.listHead = null; targetPosition = Vector3.zero; } }
public LiList findHead() { LiList el = this; LiList prev = el.previous; while (prev != null) { el = prev; prev = el.previous; } return(el); }
public void TestOddLengthMerge() { /// Test that merge will work on uneven list lengths LiList listOne = new LiList(); LiList listTwo = new LiList(); listOne.Insert(1); listOne.InsertAfter(1, 2); listTwo.Insert(4); Program.Merge(listOne, listTwo); int expectedValue = 2; Assert.Equal(expectedValue, (listOne.Head.Next.Value)); }
// Use this for initialization void Start() { screenText = GameObject.Find("text1").GetComponent <Text>(); Fns1Obj.transform.position = new Vector3(center.x - unitSize, center.y, center.z); FnObj.transform.position = new Vector3(center.x + unitSize, center.y, center.z); LiList Fns1List = new LiList(Fns1Obj, null, null); LiList FnList = new LiList(FnObj, null, null); Fns1Holder = new ListHolder(Fns1List, unitSize); FnHolder = new ListHolder(FnList, unitSize); FtemporaryHolder = new ListHolder(null, unitSize); }
public void TestAppendToEnd() { ///test appends method at to end node head int testNum1 = 7; int testNum2 = 17; int testNum3 = 77; LiList testList = new LiList(); testList.Insert(testNum1); testList.Insert(testNum2); testList.Append(testNum3); int expectedValue = 77; Assert.Equal(expectedValue, testList.Head.Next.Next.Value); }
public void TestInsertOnHead() { ///Test insert before the head returns correct value int testNum1 = 5; int testNum2 = 10; int testNum3 = 33; LiList testList = new LiList(); testList.Insert(testNum1); testList.Includes(testNum2); testList.InsertBefore(testNum1, testNum3); int expectedValue = 33; Assert.Equal(expectedValue, (testList.Head.Value)); }
public void TestAppendDoesNotChangeHead() { ///test append does not insert the new appended node at the head int testNum1 = 3; int testNum2 = 13; int testNum3 = 23; LiList testList = new LiList(); testList.Insert(testNum1); testList.Insert(testNum2); testList.Append(testNum3); int expectedNalue = 13; Assert.Equal(expectedNalue, testList.Head.Value); }
public void TestKthOnNodeNotInList() { /// Test the last node value int testNum1 = 33; int testNum2 = 44; int testNum3 = 55; int testNum4 = 3; LiList testList = new LiList(); testList.Insert(testNum1); testList.Insert(testNum2); testList.Insert(testNum3); // Assert.Equal(expectedValue, (testLis.FindKthFromEnd(testNum4))); Assert.Throws <Exception>(() => Program.FindKthFromEnd(testList, testNum4)); }