| # | Problem | Pass Rate (passed user / total user) |
|---|---|---|
| 10997 | Queue |
|
| 11413 | Rational Class |
|
Description
A queue is an abstract data type that serves as a collection of elements, where nodes are removed only from the head of the queue and are inserted only at the tail of the queue. Two principal operations can be used to manipulate a queue: enqueue, which inserts an element at the tail, and dequeue, which removes the element at the head of the collection.

Let’s see how the queue data structure can be realized in C++.We have an approach to implement queue: linked list. Thus, we define a class as follows:
class List_queue {
public:
List_queue();
~List_queue();
void enqueue(const int &);
void dequeue();
void print();
private:
ListNode *head;
ListNode *tail;
};
where List_queue implements the queue data structure.
REQUIREMENTS:
Implement the constructor, destructor, enqueue(), dequeue() and print() member functions of the List_queue class.
Note:
1.This problem involves three files.
- function.h: Class definitions.
- function.cpp: Member-function definitions.
- main.cpp: A driver program to test your class implementation.
You will be provided with main.cpp and function.h, and asked to implement function.cpp.
function.h
main.cpp
2.For OJ submission:
Step 1. Submit only your function.cpp into the submission block.
Step 2. Check the results and debug your program if necessary.
Input
There are three kinds of commands:
- “enqueue integerA” represents inserting an element with int value A at the tail of the queue.
- “dequeue” represents removing the element at the head of the queue.
- “print” represents showing the current content of the queue.
Each command is followed by a new line character.
Input terminated by EOF.
Output
The output should consist of the current state of the queue.
When the queue is empty, you don’t need to print anything except a new line character.
Sample Input Download
Sample Output Download
Partial Judge Code
10997.cppPartial Judge Header
10997.hTags
Discuss
Description
- Use integer variables to represent the private data of the class─the numerator and the denominator.
- Provide a constructor that enables an object of this class to be initialized when it's declared. The constructor should contain default values in case no initializers are provided and should store the fraction in reduced form. For example, the fraction 2/4 would be stored in object as 1 in the numerator and 2 in the denominator.
- Provide public member functions that perform each of the following tasks:
- Adding two Rational numbers. The result should be stored in reduced form.
- Multiplying two Rational numbers. The result should be stored in reduced form.
- Printing Rational numbers in form a/b, where a is the numerator and b is the denominator.
- You need to implement a private member function reduce() that will be used in your constructor and the about public arithmetic member functions to derive the required reduced form.
- function.h: Class definition of Rational.
- function.cpp: Member-function definitions of Rational.
- main.cpp: A driver program to test your class implementation.
#include <iostream>
#include "function.h" // include definition of class Rational
using namespace std;
int main()
{
char s1;
int s2, s3, s4, s5;
Rational x;
while(cin >>s1>>s2>>s3>>s4>>s5)
{
if(cin.eof())
{
break;
}
Rational c(s2, s3), d(s4, s5);
if(s1 == '+')
{
x = c.addition( d ); // adds object c and d; sets the value to x
x.printRational(); // prints rational object x
}
else if(s1 == '*')
{
x = c.multiplication( d ); // multiplies object c and d
x.printRational(); // prints rational object x
}
}
}
int gcd(int a, int b){
return (b == 0) ? a : gcd(b, a % b);
}
#ifndef RATIONAL_H
#define RATIONAL_H
class Rational
{
public:
Rational( int = 0, int = 1 ); // default constructor
Rational addition( const Rational & ) const; // function addition
Rational multiplication( const Rational & ) const; // function multi.
void printRational () const; // print rational format
private:
int numerator; // integer numerator
int denominator; // integer denominator
void reduce();
}; // end class Rational
int gcd(int a, int b);
#endif
- Step 1. Include function.h into function.cpp and then implement your function.cpp. (You don’t need to modify function.h and main.cpp)
- Step 2. Submit the code of function.cpp into submission block.
- Step 3. Check the results and debug your program if necessary.
Input
There are five strings in each line: S1 S2 S3 S4 S5
- S1 represents an operator (+,*).
- S2 and S3 represent the numerator and denominator of the first operand ,respectively.
- S4 and S5 represent the numerator and denominator of the second operand, respectively.
Output
For every given operation, your program should print the corresponding result followed by a new line character.