2010-06-23 5 views
0

Je veux créer une pile qui aura les méthodes suivantes:me aider avec pile prioritaire en C#

getValueOf ("key") 
getKeyOf ("value") 
addKeyAndValue ("key" "value") 
delete ("key") 

quelqu'un peut-il s'il vous plaît aidez-moi comme je suis très nouveau à C forte

Répondre

2

Avez-vous regardé à la classe Dictionary?
Ce n'est pas une pile, mais les méthodes que vous décrivez ne sont pas typiques d'une pile.

getValueOf ("clé"):

var value = dictionary[key]; 

addKeyAndValue (valeur "clé" ""):

dictionary.Add(key, value); 

supprimer ("clé")

dictionary.Remove(key); 

getKeyOf ("valeur") avec LINQ:

var key = dictionary.Where(pair => pair.Value == 10) 
        .Select(pair => pair.Key).FirstOrDefault(); 
1

Êtes-vous sûr besoin d'une pile? Ce que vous décrivez ressemble beaucoup à une collection Dictionary. Une pile est une structure de données très spécifique et ne vous permettrait normalement pas de rechercher par des clés de valeurs - c'est une structure de données «premier entré, dernier sorti» qui n'aurait pas les méthodes que vous voulez. D'autre part, un dictionnaire a ces capacités de recherche et possède des méthodes qui sont assez proches de ce que vous décrivez.

+0

ouais c'est une de mes questions hw qui m'avait demandé de mettre en œuvre une telle pile s'il vous plaît aidez-moi je suis ruiné comme je ne sais pas – ghostantanieh

+0

@ghostantanieh - Vous pouvez envelopper votre classe autour d'un dictionnaire, mais sans en savoir plus sur le contraintes que vous avez (êtes-vous autorisé à utiliser des types de collection existants? Qu'est-ce que vous n'êtes pas autorisé à faire?) il est difficile de vous donner une bonne réponse. – Oded

3

Vous devez vérifier Dictionary classe ou si vous voulez comme vous l'avez dit "priorité" (triée), vous devez vérifier SortedList classe.

EDIT: Si vous devez implémenter la pile par vous-même. Vous devez vérifier les interfaces ICollection, IEnumerable et ICloneable.

Cependant, il est préférable d'utiliser des classes déjà existantes dans Framework si elles répondent à vos besoins. Et en fonction de votre description, vous avez besoin de Dictionary ou SortedList.

+0

Cependant, la priorité devrait être "clé" (et unique). –

Questions connexes