I've come across two questions from my previous years college test papers. I just couldn't solve them

1. Define rational number as an ADT (abstract data structure)
2. Write a suitable C code to sort a finite set of elements where an element may appear a large number of times

For the second question, only the logic would suffice

2
Contributors
3
Replies
5
Views
8 Years
Discussion Span
Last Post by Narue

>Define rational number as an ADT (abstract data structure)
I fail to see how this is difficult. What kept you from completing the exercise?

>Write a suitable C code to sort a finite set of elements
>where an element may appear a large number of times

Well any general sorting algorithm will do this, so now you only need to find one where the processing of duplicate values is efficient. Might I suggest counting sort?

I fail to see how this is difficult

Actually, I just couldn't understand the question.
All I know about rational numbers is that they are Set of Real Numbers minus Set of Irrational Numbers Or another way of defining them is "Any number that can be expressed in p/q format where q≠0 (p & q belong to set of integers)"
But I don't know how to express them as an ADT

>Any number that can be expressed in p/q format where q≠0 (p & q belong to set of integers)
Translation: rational numbers can always be represented by a fraction p/q where q is not zero. So you need to write a common fraction "class":

typedef struct rational {
int numerator;
int denominator;
} rational;