Здравейте!Имам нужда от малко помощ по тази програма на C++:
Съставяне на два динамично представени стека с целочислени данни,съдържащи се във външен файл.
Сортиране на елементите в двете структури по метод чрез размяна (метод на мехурчето).
Изграждане на подредена динамична структура дек,съдържащ елементите на двата стека и намиране на най-малкото число по-голямо от средноаритметичната стойност на всички елементи в дека.
Запис на изходните резултати във външен файл.
Ето до къде съм стигнал:
#include <iostream>
using namespace std;

struct elem
{
int key;
elem *next;

} *P,*N;

void push(int n, elem *&start)
{
elem *p = start;
start = new elem;
start -> key=n;
start -> next=p;
}

int pop(int &n, elem *&start)
{
if(start)
{
elem *p=start;
n=start->key;
start=start->next;
delete p;
return 1;
}
else return 0;
}
void bubbleSort2(elem *N[], int& n)
{ int i=1, j, k;
for (i=0; i<n-1; i++)
for (j=n-1; j>=i; j--)
if (P[j].key > P[j+1].key) {
k=(int) N[j]; N[j]=N[j-1]; k=(int) N[j-1];
k = j;
}



}
void bubbleSort3(elem *P [], int &n)
{ int i=1, j, k;
for (i=n; i<n-1; i++)
for (j=n-1; j>=i; j--)
if (N[j].key > N[j+1].key) {
k=(int) P[j]; P[j]=P[j-1]; k=(int)P[j-1];
k = j;
}

}

void main()
{
int n=1;
while(n)
{
cout<<"\n Vuvedi cifra: "<<endl;
cin>>n;

if(n>0)
{ push(n,P);

}
else
{
if(n<0)
push(n,N);

}
}
while(pop(n,P))

cout<<" "<<n<<"\t";
cout<<"Sortirane1"<<endl;
bubbleSort2( &N,n);
while(pop(n,N))

cout<<" "<<n<<"\t";
cout<<"Sortirane2"<<endl;
bubbleSort3(&P,n);
cout<<endl;
}