Let's say I had a priority queue, Q, I'm trying to write an alogorithm that will implement the enqueue operation.
here is my enqueue...
Code:void queue::enqueue(int number, int priority) { bool placedElement = false; // determine whether or not the element was placed qNode tempNode1; qNode tempNode2; int temp = 0; /* if the queue is empty, just add the number to the front of the queue */ if (isEmpty()) { q[temp].num = number; q[temp].priority = priority; size++; placedElement = true; } else { while (!placedElement) { if(q[temp].priority > priority) { if(q[temp].priority != DUMMY_PRIORITY) { tempNode1 = q[temp]; q[temp].num = number; q[temp].priority = priority; size++; for(int i = temp + 1 ; i <= size ; i++) { // move the elements up tempNode2 = q[i]; q[i] = tempNode1; tempNode1 = tempNode2; } } else { q[temp].num = number; q[temp].priority = priority; size++; } placedElement = true; } else { temp++; } } } }
Also if I used Asymptotic notation, what would be the worst case time complextiy of this operation? Any ideas..?
Thanks



LinkBack URL
About LinkBacks



CornedBee