Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Using subscript notation in linked list in C++

Posted on 2003-10-22
4
Medium Priority
?
332 Views
Last Modified: 2008-03-17
Hi,I’m writing a program to illustrate the work of psedourandom sequence generator-LFSR(Linear Feedback Shift Register).
Input   :  initial state of LFSR,primitive polynomial.
Output : psedourandom sequence(a combination of initial state by mod 2)
Since the length of LFSR and the polynomial are given by the user when he runs program, i decided to use linked list to contain all the state of LFSR. But then I stuck in how to use subscript notation. Say,for example I have the length of LFSR n=4 and the polynomial f(x)=x^4+x+1.It means in the linked list I have a[i+4]=a[i]+a[i+1] (a[0]-a[3] are given by the user)(assume it like an unlimited array ),but I don’t know how to handle it.Please I need your help!!!
Here’s part of my code:
     #include <iostream.h>
     // object to add to list
       class Data
       {
       public:
         Data() { itsValue = 0;}
         Data(int Position):itsPosition(Position){}
         Data(int data,int Position):itsValue(data),its Position (Position){}
         ~Data(){}
         int GetValue() const { return itsValue; }
         int Get Position ()const{return its Position;}
       private:
         int itsValue;
         int its Position;
       };

      // manages list, orders by its Position.
       class Node
       {
       public:
         Node (Data*);
         ~Node();
         void SetNext(Node * node) { itsNext = node; }
         Node * GetNext() const { return itsNext; }
         Data * GetData() const { return itsData; }
         void Insert(Node *);        
       private:
         Data *itsData;
         Node * itsNext;
       };

       Node::Node(Data* pData):
       itsData(pData),
       itsNext(0)
       {}

       Node::~Node()
       {
         delete itsData;
         itsData = 0;
         delete itsNext;
         itsNext = 0;
       }

       void Node::Insert(Node* newNode)
       {
         if (!itsNext)
            itsNext = newNode;
         else
         {
               newNode->SetNext(itsNext);
               itsNext = newNode;
         }
       }

      int main()
      {
         int nbr;
         cout<<"Enter the number of registers: ";
         cin>>nbr;
         Node *pNode = 0;
         Data * pData = new Data(0,-1);
         int data;
         Node *pHead = new Node(pData);
         for(int i=0;i<nbr;)
         {
            cout << "Value of register "<<i<<"is: ";
            cin >>data ;
            if (data!=0&&data!=1)
            {
               cout<<"Entry is not correct";
               break;
            }
            pData = new Data(data,i);
            pNode = new Node(pData);
            pHead->Insert(pNode);
            i++;
         }
         WHAT CAN I DO FURTHER?!!!
         return 0;
 }
   
0
Comment
Question by:Scarecrow248
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 

Author Comment

by:Scarecrow248
ID: 9620102
Thanks a lot for your help. Your tutorials have helped me alot
0
 
LVL 4

Accepted Solution

by:
Zonebit earned 250 total points
ID: 9626878
Scarecrow,

Glad to help out.  Your thanks (and your points) are much appreciated.
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Make the most of your online learning experience.
Simple Linear Regression
Six Sigma Control Plans

596 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question