Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: C
Expertise: Advanced
Feb 3, 2004

Inserting Elements into Arrays

This tip demonstrates how to add an element to a particular position in an array and how to shift all elements in and above that position up one position.

Using subscripts:


-------------------
void insert(int a[], int& n, int maxsize, int index, int key) {
   // function:
   //    Inserts key at a[index], shifting other values up as necessary.
   //    Updates number of elements in a.
   // parameters:
   //    a       inout  array of values.
   //    n       inout  number of values in a, a[0]..a[n-1]
   //    maxsize in     maximum number of elements that can fit in a
   //    index   in     position to insert at
   //    key     in     value to insert.
   // returns: nothing

   if (index < 0 || index > maxsize-1) {
      ; // ERROR - return special value, halt, throw exception, or expand
array.
   }
   // Move all elements up one position.  i is destination.
   for (int i=n; i>index; i--) {
       a[i] = a[i-1];
   }
   a[index] = key;  // put value in vacated position
   n++;             // update count of items in a
   return;
}

Using pointers:


----------------

void insert(int* a, int& n, int maxsize, int index, int key) {
   if (index < 0 || index > maxsize-1) {
      ;// ERROR - return special value, halt, throw exception, or expand
array.
   }
   int* dest = a+index;
   int* tail = a+n;
   while (tail > dest) {
       *tail = *(tail-1);
       tail--;
   }
   *dest = key;  // put value in vacated position
   n++;          // update count of items in a
   return;
}
Wael Salman
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap