Solved

Data structure for a deck of cards

Posted on 2011-03-01
5
877 Views
Last Modified: 2012-06-21
I am wondering if a stack would be the best data structure for a deck of cards.
The operations are addToDeck(), removeFromDeck() and shuffle().

Pleas let me know. Thanks!
0
Comment
Question by:dshrenik
[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
5 Comments
 
LVL 47

Accepted Solution

by:
for_yan earned 500 total points
ID: 35014087
But probably in most operations you'll want to fetch the arbitrary
card from the deck - you'll not want first-in-first-out operations, so
maybe you'll not want to use Stack

Perhaps after all array will be better:

http://www.dreamincode.net/forums/topic/110380-deck-of-cards-using-various-methods/
0
 
LVL 84

Expert Comment

by:ozo
ID: 35014224
what do the operations addToDeck(), removeFromDeck() and shuffle() do?
what information does the deck contain?
0
 

Author Comment

by:dshrenik
ID: 35014231
addToDeck adds a card to the deck. removeFromDeck removes a card from the deck.
The deck is just a collection of orders in a particular order.
0
 
LVL 84

Expert Comment

by:ozo
ID: 35014338
When addToDeck adds a card, would it be the first card removed by removeFromDeck?
Would it be the last card removed by removeFromDeck?
Does addToDeck specify the value of the card to be added?
Does it specify the position in the deck where it is to be added?
Does removeFromDeck specify the value of the card to be removed?
Does it specify a position in the deck where a card is to be removed?
Does it remove the lowest value?  The highest value? Does it remove a random value?
When it removes a card from the deck, does it report what card was removed?
Does it report how many cards remain?
What happens if you try to remove from an empty deck?
What happens if you try to add a card that is already in the deck?
Would we be guaranteed that that never happens?

The answers to these questions should give you a better idea what would be the best data structure.
You might also consider:
Would calls to addToDeck and  removeFromDeck tend to alternate?
Would they tend to cluster?
How often is  shuffle() called compared to how often addToDeck and  removeFromDeck are called?
How many times can addToDeck be called?
How many decks can there be?
How hard should it be to predict the order after a shuffle()?


0
 

Author Comment

by:dshrenik
ID: 35014652
Thank you!
0

Featured Post

Ready to get started with anonymous questions?

It's easy! Check out this step-by-step guide for asking an anonymous question on Experts Exchange.

Question has a verified solution.

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

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
The viewer will learn how to implement Singleton Design Pattern in Java.
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.

630 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