コード例 #1
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Binary search. </summary>
        ///
        /// <remarks>   Galarist, 18/09/2018. </remarks>
        ///
        /// <param name="searchValue">  The search value. </param>
        ///
        /// <returns>   An int. </returns>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        public int BinarySearch(LinkListNode searchValue)
        {
            //sorts the link list by result
            SortList();
            LinkListNode current    = HeadNode;
            ArrayList    myTempList = new ArrayList();

            for (LinkListNode i = current; i != null; i = i.GetNext())
            {
                myTempList.Add(i.GetMyValue());
            }

            //returns the integer value of where the node sits in the node list
            return(myTempList.BinarySearch(searchValue));
        }
コード例 #2
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Sort list. </summary>
        ///
        /// <remarks>   Galarist, 18/09/2018. </remarks>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        public void SortList()
        {
            //sorts the list by the equation result
            LinkListNode current = HeadNode;

            for (LinkListNode i = current; i.GetNext() != null; i = i.GetNext())
            {
                for (LinkListNode j = i.GetNext(); j != null; j = j.GetNext())
                {
                    if (i.GetMyValue().ANumber > j.GetMyValue().ANumber)
                    {
                        var Temp = j.GetMyValue();
                        j.SetMyValue(i.GetMyValue());
                        i.SetMyValue(Temp);
                    }
                }
            }
        }
コード例 #3
0
        //add a node to the node list

        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Adds an equation node. </summary>
        ///
        /// <remarks>   Galarist, 18/09/2018. </remarks>
        ///
        /// <param name="node"> The node. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        public void AddEquationNode(LinkListNode node)
        {
            if ((HeadNode == null) && (CurrentNode == null) && (TailNode == null))
            {
                // this firstNode in the list
                HeadNode    = node;
                CurrentNode = node;
                TailNode    = node;
                count++;
            }
            else
            {
                //append the node to the list
                CurrentNode = node;
                HeadNode.SetPrevious(node);
                CurrentNode.SetNext(HeadNode);
                setHeadNode(CurrentNode);
                count++;
            }
        }
コード例 #4
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Sets tail node. </summary>
        ///
        /// <remarks>   Galarist, 18/09/2018. </remarks>
        ///
        /// <param name="node"> The node. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        public void setTailNode(LinkListNode node)
        {
            TailNode = node;
        }
コード例 #5
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Sets head node. </summary>
        ///
        /// <remarks>   Galarist, 18/09/2018. </remarks>
        ///
        /// <param name="node"> The node. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        public void setHeadNode(LinkListNode node)
        {
            HeadNode = node;
        }
コード例 #6
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Sets current node. </summary>
        ///
        /// <remarks>   Galarist, 18/09/2018. </remarks>
        ///
        /// <param name="node"> The node. </param>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        public void setCurrentNode(LinkListNode node)
        {
            CurrentNode = node;
        }