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

Тема в разделе "C/C++/C#", создана пользователем plaquette, 8 апр 2012.

  1. plaquette

    plaquette Гость

    Задача состоит в следующем:
    Сформировать две очереди по 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;
    }
    }
    как его переписать, чтобы был "не в классах"?

    заранее спасибо.
     
  2. Whatka

    Whatka Well-Known Member

    Регистрация:
    9 окт 2011
    Сообщения:
    433
    Симпатии:
    4
    создай 2 массива структур с соответствующими методами и полями
     
Загрузка...

Поделиться этой страницей