Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

HOW TO USE 2 STACKS

Posted on 2004-10-19
8
Medium Priority
?
1,212 Views
Last Modified: 2013-03-28
Here is the problem I am trying to solve.

When a share of common stock of some company is sold, the capital gain (or, sometimes, loss) is the difference between the share's selling price and the price originally paid to buy it. This rule is easy to understand for a single share, but if we sell multiple shares of stock bought over a long period of time, then we must identify the shares actually being sold. A standard accounting principle for identifying which shares of a stock were sold in such a case is to use a FIFO protocol-the shares sold are the ones that have been held the longest (indeed, this is the default method built into several personal finance software packages). For example, suppose we buy 100 shares at $20 each on day 1, 20 shares at $24 on day 2, 200 shares at $36 on day 3, and then sell 150 shares on day 4 at $30 each. Then applying the FIFO protocol means that of the 150 shares sold, 100 were bought on day 1, 20 were bought on day 2, and 30 were bought on day 3. The capital gain in this case would therefore be 100.10+20.6+30.(−6), or $940.

Write a program that takes as input a sequence of transactions of the form

    * buy x share(s) at $y each

or

    * sell x share(s) at $y each,

assuming that the transactions occur on consecutive days and the values x and y are integers. Given this input sequence, the output should be the total capital gain (or loss) for the entire sequence, using the FIFO protocol to identify shares.


My question is how would I define two stacks(or queues)  to match sell orders with buy orders?

Thanks.
0
Comment
Question by:kaushalshah
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
8 Comments
 
LVL 7

Accepted Solution

by:
JugglerW earned 2000 total points
ID: 12352103
Sounds like homework?

But to give you an idea:

You have to use one queue. At one end feed in the shares you've bought. The objects you feed in should keep track of share count and prices.
If you want to sell get objects from the other end of queue until you have enough shares from the selling price and the price stored in the object you can calc your gain/loss.

Because normally not all shares from the last object will be used use a queue which allows to peek (instead of remove it) to the last object and subtract as much shares you need from this object.

0
 

Author Comment

by:kaushalshah
ID: 12391395
Venabili, I am not asking for code, just ideas.    

K
0
 

Author Comment

by:kaushalshah
ID: 12391411
JugglerW, I did not understand your last comment.

K
0
 
LVL 7

Expert Comment

by:JugglerW
ID: 12394800
I meant:

If you want to sell 50 shares but the last object in your queue represents 100 shares you can't remove the whole object from the queue but only have to subtract the 50 you need and leave the object in the queue. So you need an operation which allows you to inspect / manipulate the last object without removing it from the queue.

0
 

Expert Comment

by:Will12
ID: 39028357
I Need Code For this Assignment Please
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
Suggested Courses

715 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