I wrote this programe for circular singly linked list but its not adding nodes to it
CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 3 of 3

Thread: I wrote this programe for circular singly linked list but its not adding nodes to it

  1. #1
    Join Date
    Dec 2012
    Posts
    1

    I wrote this programe for circular singly linked list but its not adding nodes to it

    Code:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    struct Node
    {
        int data;
        Node *nextptr;
    };
    
    
    class CLLIST{
    
    private:
    
             Node*firstptr;
             Node*lastptr;
    
    public:
             CLLIST(){
    
             cout << "Constructor Called !";
              firstptr=lastptr=NULL;
    }
    
    void insert_at_back(int val){
    
                 if(firstptr==NULL) //it means start of C.LIST
                 {
                     firstptr = new Node;
                     firstptr->data=val;
                     firstptr->nextptr=firstptr;
                 } else{
    
                 Node*temp1;
                 Node*temp2;
    
                 temp1 = firstptr;
    
                     temp2 = temp1->nextptr;
                     temp2->data = val; //inserted at back
                     temp2->nextptr=firstptr; //circle completed
                 }
                 }
    
    
    
    
    void printit(){
    
                   // functiont o print all the circular link lists data
                   Node* temp3ptr;
                   temp3ptr = firstptr;
    
                   while(temp3ptr->nextptr!=firstptr)//traversing
                   {
                      cout << temp3ptr->data;
                      cout << endl;
                   }
    
    }
    
    // 1-return pointer to node give the index positio of node is list Null if node dosent exist
    void pointer_to_node(int value){
    
                 Node*temp4ptr;
                 temp4ptr = firstptr;
                 int count = 0;
    
                 while(temp4ptr->nextptr != firstptr) //traversing
                  {
                      if(count == value){
    
                      cout << "Your Required Pointer is : \n";
                      cout << "Index No: " << value;
                      cout << temp4ptr;
    
                      } count++;
                  }
    
    
                     temp4ptr = NULL;
                     cout << "Can't You Think in Bounds";
                     cout <<temp4ptr;
    
    
    }
    
    //2-call the size of lise
    
    int size_of_list(){
    
    
                   Node*temp5ptr;
    
                   temp5ptr = firstptr;
                   int size = 0; //size calculating variable
    
                   while(temp5ptr->nextptr !=firstptr)
                   {
                       size++;
                   }
                   cout << "Size if : ";
                   cout << size;
                   return(size);
    
    
    
    
    }
    
    
    // B-Value to be inserted at the end of node:
    
    void insert_value(int value2){
    
               if(firstptr==NULL) //it means starts of C.LIST
               {
                   Node*temptr;
                   firstptr = temptr;
                   firstptr->data = value2;
                   firstptr->nextptr=firstptr;
               } else {
    
    
               Node*temptr1;
               Node*temptr2;
    
               temptr1 = firstptr;
               while(temptr1->nextptr != firstptr) //traversing
               {
                   temptr2 = temptr1->nextptr;//inserted
                   temptr2->nextptr = firstptr; //circle completed
               }
    
    
    
    
    
               }
    
    
    
    
    
    
    
    }
    
    };
    
    
    
    
    
    int main()
    {
         CLLIST obj1;
    
    
          obj1.insert_at_back(25);
          obj1.insert_value(23);
          obj1.size_of_list();
    
          obj1.printit();
    
         cout << " \n \n Done !";
    
        getch();
    }

  2. #2
    Join Date
    Apr 1999
    Posts
    27,423

    Re: I wrote this programe for circular singly linked list but its not adding nodes to

    OK, and what have you done to debug this program? Did you run your program under the debugger to see where it goes wrong?

    Did you write this code? If so, then you need to debug this yourself first, then ask questions on what you've discovered in the code that takes the wrong path, variable not set correctly etc.

    And even when you discover what is actually wrong, you more than likely would know how to fix it.

    Regards,

    Paul McKenzie
    Last edited by Paul McKenzie; December 14th, 2012 at 01:30 AM.

  3. #3
    Join Date
    Jul 2002
    Location
    Portsmouth. United Kingdom
    Posts
    2,699

    Re: I wrote this programe for circular singly linked list but its not adding nodes to

    When people try to debug linked lists, my advice (along with stepping through with the debugger) is to get pencil and paper out and draw the sequence of node connections you expect to see when a certain action is applied. Step through with the debugger and see if it does the same. In drawing it out step by step you may even discover a fault with the original algorithm you were trying to implement.
    Last edited by JohnW@Wessex; December 14th, 2012 at 03:25 AM. Reason: spelling
    "It doesn't matter how beautiful your theory is, it doesn't matter how smart you are. If it doesn't agree with experiment, it's wrong."
    Richard P. Feynman

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Azure Activities Information Page

Windows Mobile Development Center


Click Here to Expand Forum to Full Width

This is a CodeGuru survey question.


Featured


HTML5 Development Center