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

Se da o lista liniara simplu inlanutita. Sa se scrie o procedura care adauga dupa fiecare element de pe pozitiile impare p, un numar de p elemente avand ca si continut valoarea elementului de pozitia p.
Ex: Daca lista inițială este : 2,4,6,11
Dupa adaugare ea va contine: 2,2,4,6,6,6,6,11.

Răspunsuri la întrebare

Răspuns de ElenaSF
1

Răspuns:

#include <iostream>    

#include <queue>

using namespace std;

int main()

{

   queue<int> lista,lista_p; //declaram lista

   int n, element, p,count=1;

   cin >> n; //introducem numarul de elemente pe care o sa il aiba lista

   while (n != 0) //construim lista

   {

       cin >> element;

       lista.push(element); //adaugam elemente in lista

       n--;

   }

   while (!lista.empty()) //cat timp lista nu este goala

   {

       if (count % 2 == 1) //se verifica daca elementul este pe o pozitie impara

       {

           p = count;

           while (p != 0) { //se adauga p elemente

               lista_p.push(lista.front());

               p--;

           }

       }

       lista_p.push(lista.front());

       lista.pop();

       count++;

   }

   while (!lista_p.empty())//se afiseaza lista

   {

       cout << lista_p.front()<<" ";

       lista_p.pop();

   }

}

Sper sa fie de ajutor


am6024574: Multumesc!
Alte întrebări interesante