Programmation en C d’arbre d’expression postfixant en solution utilisant des lignes lues à partir d’un fichier

c expression-trees infix-notation postfix-notation

Question

Je suis terriblement nouveau en programmation C. Je suis tombé sur quelques réponses. Certains utilisent l'ancienne syntaxe.

Le problème est que je dois créer un programme qui lira un fichier texte et utilisera les lignes postfixes lues pour convertir en une équation infixe.

Le fichier texte ressemblerait à ceci:

6            #this is the number ofcontainters
1 + 3 4      # it's no_operation_if op!=v then read value of nos mention
2 + 5 6 
3 v 2.1 
4 v 2.4
5 v 3.5 
6 v 1.5

Le fichier C sera lu dans le terminal Ubuntu où le fichier texte est la seule entrée et la sortie est la forme infixe.

Quelques suggestions sur la façon dont je vais accomplir cela en utilisant des structures, des tableaux et des unions. Nous avions déjà reçu un format permettant de créer struct opnode, vnode et de les unir. La partie tableau Je ne sais pas comment passer de la lecture au tableau lui-même. C est tellement bizarre comparé à java à partir de ce moment.

[MODIFIER]

Désolé j'ai oublié de mentionner que c'est un devoir ... plus postfixé en infixé. C'est postfix pour résoudre l'équation.

Sans connaissance préalable de la syntaxe et habitué à la programmation orientée objet, je ne sais pas comment éditer.

6            #this is the number ofcontainters
1 + 3 4      # it's no_operation_if op!=v then read value of nos mention
2 + 5 6 
3 v 2.1 
4 v 2.4
5 v 3.5 
6 v 1.5

/ * Ceci lit l'entrée de chaîne de fichier texte dans le terminal * puis commande de lire le fichier texte * etc. * et tout le reste réellement * /

6            #this is the number ofcontainters
1 + 3 4      # it's no_operation_if op!=v then read value of nos mention
2 + 5 6 
3 v 2.1 
4 v 2.4
5 v 3.5 
6 v 1.5

Réponse populaire

Je suppose que l'algorithme de base devrait être:

  • Lisez le compte pour le nombre de lignes (vous ne savez pas pourquoi cela est nécessaire, il serait plus facile de continuer à lire aussi longtemps que l'indata est fourni, mais peu importe)
  • Pour chaque ligne attendue:
    • Analyser les quatre sous-chaînes attendues
    • Ignorer le premier, qui semble être un chiffre inutile
    • Imprimez les sous-chaînes dans un ordre mélangé pour créer le look "infixe"
  • Être terminé

Je ne comprends pas la partie concernant l'opérateur "v", vous devriez peut-être clarifier cette partie.

Cela semble un peu trop comme un devoir pour que nous puissions simplement poster du code à l'aveuglette ... Vous devez d'abord montrer votre propre tentative, du moins.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi