Solved

insertion into linked list

Posted on 2003-11-13
5
242 Views
Last Modified: 2010-04-02
I wanted to insert a value to a linked list in ascending order. But when i insert 5,10,2 - it will print out 5,2,10. When i try 4,3,8 - its correct! Pls correct my mistakes below.

void insert(nodePtr &head, value val)
{
      nodePtr newNode = new node;
      newNode->num = val;
      newNode->next = NULL;

      if(head == NULL)
            head = newNode;

      else if(head->next == NULL)
      {
            if(head->num > val)
            {
                  newNode->next = head;
                  head = newNode;
            }
      }
      else
      {
            nodePtr search = head;
            nodePtr temp;

            while(search != NULL)
            {
                  if(search->next == NULL)
                  {
                  search->next = newNode;
                        break;
                  }

                  if(search->next->num > val)
                  {
            temp = search->next;
                  search->next = newNode;
                  newNode->next = temp;
                        break;
                  }

                  search = search->next;
            }

      }
}
0
Comment
Question by:Rebecca2003
5 Comments
 

Accepted Solution

by:
sbooth17 earned 30 total points
ID: 9740825
Try this, untested code, I think it should work.

nodePtr newNode = new node;
newNode->num = val;
newNode->next = NULL;

if(head == NULL)
    head = newNode;
else
{
     nodePtr search = head;
     nodePtr temp;
 
  //check the first value  
  if(val < search->num)
  {
     //goes before head
     newNode->next = search;
     head = newNode;
     return;
  }
 
  while(true)
  {
    if(search->next == NULL)
    {
      search->next = newNode;
      break;
    }
    if(val < search->next->num)
    {
       temp = search;
       search->next = newNode;
       newNode->next = temp;
      break;
    }
    search = search->next;
  }
}
0
 
LVL 39

Expert Comment

by:itsmeandnobodyelse
ID: 9741164
What type is val and num? If that are strings then "10" is less "2" because comparision works lexicographically.
Use type int if i am right.

Regards, Alex
0
 
LVL 11

Expert Comment

by:bcladd
ID: 9741303
Rebecca2003:

You should probably keep one question in one posting rather than here and in http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_20796480.html

You should go to Community Support and have one of them removed.

-bcl
0
 
LVL 9

Expert Comment

by:tinchos
ID: 10249141
No comment has been added lately, so it's time to clean up this TA.
I will leave the following recommendation for this question in the Cleanup topic area:

Accept: sbooth17 {http:#9740825}

Please leave any comments here within the next seven days.
PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

Tinchos
EE Cleanup Volunteer
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
SetCurrentDirectory path limit 7 131
C Language combined operators 28 114
I could not build boost code, 10 95
C++ error cannot convert from std::string to const char * 6 247
Article by: SunnyDark
This article's goal is to present you with an easy to use XML wrapper for C++ and also present some interesting techniques that you might use with MS C++. The reason I built this class is to ease the pain of using XML files with C++, since there is…
C++ Properties One feature missing from standard C++ that you will find in many other Object Oriented Programming languages is something called a Property (http://www.experts-exchange.com/Programming/Languages/CPP/A_3912-Object-Properties-in-C.ht…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

860 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