Informatică, întrebare adresată de Andrei3005, 8 ani în urmă

Va rog urgent!!!!!

Se citește de la tastatura un sir de litere mici din alfabet, terminat cu caracterul '$'. Sa se pună intr-o stiva implementata dinamic toate literele citite. Se citește apoi o litera mica y din
alfabet. Sa se genereze doua structuri dinamice de tip stiva, prima cuprinzând literele din stiva inițiala care preced in alfabet litera y, cealaltă cuprinzând literele din stiva inițiala care succed litera y. De afișat conținutele stivelor generate.

Răspunsuri la întrebare

Răspuns de andrei750238
0

PROGRAM C++

#include <iostream>

#include <math.h>

using namespace std;

char* aloca_stiva(int dimensiune) {

char* p = new char[dimensiune];

return p;

}

void adauga_element_stiva(char element, char* stiva,int &cap) {

stiva[cap++] = element;

};

char extrage_element_stiva(char* stiva, int& cap) {

return stiva[cap--];

}

void afisare_continut_stiva(char* stiva, int cap) {

cap--;

while (cap > 0)

 cout << stiva[cap--] << " ";

}

int main() {

//Citeste sir de caractere

cout << "Introduceti sirul de caractere : ";

char txt[100];

cin.get(txt, 100, '$');

cin.get(); //Goleste buffer

//Construieste stiva

char* stiva_citita = aloca_stiva(strlen(txt));

int cap_stiva_citita = 0;

//Adauga caracterele citite in stiva

for (int i = 0; i < strlen(txt); i++)

 adauga_element_stiva(txt[i], stiva_citita, cap_stiva_citita);

//Citeste y

char y;

cout << "Introduceti y : ";

cin >> y;

//Adauga literele in stiva corespunzatoare

char* stiva_1 = aloca_stiva(strlen(txt));

int cap_stiva_1 = 0;

char* stiva_2 = aloca_stiva(strlen(txt));

int cap_stiva_2 = 0;

char temp;

while (cap_stiva_citita) {

 temp = extrage_element_stiva(stiva_citita, cap_stiva_citita);

 if (temp < y)adauga_element_stiva(temp, stiva_1, cap_stiva_1);

 if (temp > y) adauga_element_stiva(temp, stiva_2, cap_stiva_2);

}

//Afiseaza continutul celor doua stive

cout << "\nStiva 1 : ";

afisare_continut_stiva(stiva_1, cap_stiva_1);

cout << "\nStiva 2 : ";

afisare_continut_stiva(stiva_2, cap_stiva_2);

}

Nota :

O implementare a stivei folosind clase ar fi condus la o varianta mai "curata" de rezolvare a problemei.

Anexe:

anonimanonim183: si vad acum ca ai putut sa răspunzi?
anonimanonim183: noi cu ce am greșit?
andrei750238: Buna ! Exista deja un raspuns la intrebarea ta si nu pot raspunde.
Aparent unele intrebari la informatica permit maxim un singur raspuns (nu doua, asa cum e normal), nu stiu de ce.

Asteapta pana cand un moderator va sterge raspunsul deja primit si apoi iti vom putea raspunde cand avem timp
anonimanonim183: mai postez eu o data
anonimanonim183: e bn?
anonimanonim183: mai ești?
anonimanonim183: gataa
anonimanonim183: acum îmi poti răspunde
anonimanonim183: @andrei750238
anonimanonim183: e clar
Alte întrebări interesante