
- Форум
- Тийн интереси и проблеми
- Училище и приятели
- Информатика/Програмиране (пишете програмния език)
Здравейте!Имам нужда от малко помощ по тази програма на 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;
}