👤

Va rog urgent!!!!!

Se citește de la tastatura un sir de litere mici din alfabet, terminat cu caracterul '


Răspuns :

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, '

© 2024 golearnings.tech. All rights reserved.

. 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ăspuns :

${data-answer}
);

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.

Vezi imaginea ANDREI750238
. 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ăspuns :

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, '

© 2024 golearnings.tech. All rights reserved.

);

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.

Vezi imaginea ANDREI750238