С++, Как Сделать Такую Программу Не В Классах?

  • Автор темы plaquette
  • Дата начала
P

plaquette

#1
Задача состоит в следующем:
Сформировать две очереди по n элементов, объединить очереди в одну, в которой элементы начальных очередей меняются, начиная с первого элемента первой очереди. Вывести на экран начальные и конечную очереди.

Есть код программы, написанный в классах:
C++:
//20.	Сформувати дві черги по n елементів, зчитавши дані з текстового файлу. 
//Об'єднати черги в одну, в якій елементи початкових черг чергуються, 
//починаючи з першого елементу першої черги. 
//Вивести на екран початкові та вихідну черги.

#include <iostream>
using namespace std;
#include <math.h>
const int n=30;
int a[n];
struct node //
{
int value;
node * next;
};
class spisok
{
node * n0,* k0;
int klad;
public:
spisok()
{
k0=n0=NULL;
}
int set_udal()
{
return klad;
}
void postroenie();
void postroenie1();
void vuvod();
void add(int);
void del();
void ochistka();
};int i=2;
//---------------------------------------------------------------------------
int main()
{
spisok a;spisok b;spisok c;
int el;
a.postroenie();b.postroenie();c.postroenie1();
a.vuvod();b.vuvod();c.vuvod();
cout<<"vvedit lanky scho dod:"<<endl;
cin>>el;
a.add(el);
a.vuvod();
cout<<"udal z chergi:"<<endl;
a.del();
a.vuvod();
cout<<"udal el"<<a.set_udal()<<endl;
a.ochistka();b.ochistka();c.ochistka();
system("Pause");
return 0;
}
//---------------------------------------------------------------------------
void spisok::postroenie()
{
node * r;
int el;
cout<<"vvedit element chergi:"<<endl;
cin>>el;a[i-2]=el;
if(el!=0)
{
r=new node;
r->value=el;
r->next=NULL;
n0=k0=r;
cin>>el;a[i-1]=el;
while(el!=0)
{
r=new node;
r->value=el;
r->next=NULL;
k0->next=r;
k0=r;
cin>>el;a[i]=el;i++;
}
}
else
{
n0=k0=r=NULL;
}
}
//-------------------------------------------------------------------------
void spisok::postroenie1()
{
node * r;int k=2;
int el;
el=a[0];
if(el!=0)
{
r=new node;
r->value=el;
r->next=NULL;
n0=k0=r;
el=a[1];
while(el!=0)
{
r=new node;
r->value=el;
r->next=NULL;
k0->next=r;
k0=r;
el=a[k];k++;
}
}
else
{
n0=k0=r=NULL;
}
}
//--------------------------------------------------------------------------

//--------------------------------------------------------------------------
void spisok::vuvod()
{
node * r;
cout<<"cherga:"<<endl;
r=n0;
while(r!=NULL)
{
cout<<r->value<<' ';
r=r->next;
}
}
//---------------------------------------------------------------------------
void spisok::add(int el)
{
node * r;
r=new node;
r->value=el;
r->next=NULL;
if(n0!=NULL)
{
k0->next=r;
k0=r;
}
else
n0=k0=r;
}
//-----------------------------------------------------------------------------
void spisok::del()
{
node * q;
if(n0==NULL)
cout<<"cherga pusta"<<endl;
else
{
klad=n0->value;
q=n0;
n0=n0->next;
delete q;
}
}
//-----------------------------------------------------------------------------
void spisok::ochistka()
{
node * q;
q=n0;
if(n0==NULL)
{
while(n0!=k0)
{
n0=q->next;
delete q;
q=n0;
}
delete n0;
n0=k0=NULL;
}
}
как его переписать, чтобы был "не в классах"?

заранее спасибо.
 
W

Whatka

#2
создай 2 массива структур с соответствующими методами и полями