954,219 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Need Quick Help LinkList

I am having trouble with printing out the number to the console. Instead of 10 printing out I want 16. How can this be fix.

<code>

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

namespace LinkList
{
    class Program
    {
        static void Main(string[] args)
        {
            List studentRecord = new List();
            studentRecord.InsertAtFront(10);
            studentRecord.InsertAtFront(16);
            studentRecord.InsertAtBack(32);

            studentRecord.PrintFromLeftToRight();
        }
    }

    public class ListNode
    {
        private object data;
        private ListNode next;
        private ListNode prev;

        public ListNode(object dataValue, ListNode n, ListNode p)
        {
            data = dataValue;
            next = n;
            prev = p;
        } // end constructor

        public ListNode Next
        {
            get { return next; }
            set { next = value; }
        } // end property Next

        public ListNode Prev
        {
            get { return prev; }
            set { next = value; }
        } // end property Prev

        public object Data
        {
            get { return data; }
            set { data = value; }
        } // end property Data
    } // end class ListNode

    public class List
    {
        private ListNode firstNode;
        private ListNode lastNode;
        ListNode temporary;

        public List()
        {
            firstNode = lastNode = null;
        } // end constructor List

        public ListNode FirstNode
        {
            get { return firstNode; }
            set { firstNode = value; }
        }

        public ListNode LastNode
        {
            get { return LastNode; }
            set { LastNode = value; }
        }

        public void InsertAtFront(object insertItem)
        {
            if (firstNode == null)     // link list is empty
                firstNode = lastNode = new ListNode(insertItem, null, null);
            else
                firstNode = new ListNode(insertItem, firstNode, null);
        } // end method InsertAtFront

        public void InsertAtBack(object insertItem)
        {
            if (firstNode == null)
                firstNode = lastNode = new ListNode(insertItem, null, null);
            else
                firstNode = new ListNode(insertItem, null, lastNode);
        } // end method InsertAtBack

        public void PrintFromLeftToRight()
        {
            if (firstNode == null)
            {
                Console.WriteLine(&quot;Link List is empty.&quot;);
                return;
            } // end if
            else
            {
                ListNode currentNode = lastNode;
                Console.WriteLine(&quot;{0,4}&quot;, currentNode.Data);
            } // end else
        } // end method PrintFromLeftToRight
    } // end class List
}</code>
wkid87
Newbie Poster
2 posts since Oct 2007
Reputation Points: 10
Solved Threads: 0
 

I found an error I think you should fix. Last line in InsertAtBack, shouldn't you be modifying lastNode and not firstNode? After that the linked-list works as it should, except it will print 32 when you call printfromlefttoright. That is because in that method you told it to print lastNode.

HTH

scru
Posting Virtuoso
1,629 posts since Feb 2007
Reputation Points: 975
Solved Threads: 140
 

Also there doesn't seem to be any funcionality in your linkedlist that isn't present already in the linkedlists the .NET framework has to offer. Unless you're doing it juts purely for a learning experience.

mariocatch
Junior Poster
103 posts since Apr 2007
Reputation Points: 11
Solved Threads: 17
 

His list supports mixed data types

scru
Posting Virtuoso
1,629 posts since Feb 2007
Reputation Points: 975
Solved Threads: 140
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You