Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 06.06.2009
Сообщений: 35
1

Динамические списки

26.09.2009, 21:55. Показов 2366. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Подскажите пожалуста идеи. Дано стек, разработать функцию, которая формирует два новых стеки: первая содержит числа из исходного стека с нечетными номерами, а второе - с четными
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2009, 21:55
Ответы с готовыми решениями:

Динамические списки
Здравствуйте. Написан мною код по заданию: из введенных слов составить списки, в 1 списке все...

Динамические списки
Задание: разработать функцию перестановки заданного элемента в начало списка. Есть библиотека, на...

Динамические списки
Пишу курсовую работу про динамические списки, и хотелось узнать мнение специалистов про мою функцию...

Динамические структуры: списки
Создать линейный однонаправленный список из вещественных чисел. Удалить из списка элемент перед...

2
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
26.09.2009, 22:10 2
Лучший ответ Сообщение было отмечено Wolandello как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void function(*stack)
{
int *stack1=new int[100];
int *stack2=new int [100];
int counter1=counter2=0;
while(stack<stack.size())// тут малек не корректно ;)
{
if(stack%2)
stack1[counter]=stack;
counter1++;
else
stack2[counter2]=stack;
counter2++;
}
for(....i<counter1)
{
//
}
for(.... i<counter2)
{
//
}
}
В циклах можете делать вывод на экран или что хотите.
*stack может быть и через & и как угодно.
0
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
11.10.2009, 20:13 3
Код
#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

enum {kIsSmaller, kIsLarger, kIsSame};

class Data
{
    public:
        Data(int val):myValue(val){}
        ~Data(){}
        int Compare(const Data &);
        void Show() {cout << myValue << endl;}
    private:
        int myValue;
};
int Data::Compare(const Data & theOtherData)
{
    if(myValue < theOtherData.myValue) return kIsSmaller;
    if(myValue > theOtherData.myValue) return kIsLarger;
    else return kIsSame;
}

class Node;
class HeadNode;
class TailNode;
class InternalNode;

class Node
{
    public:
        Node() {}
        virtual ~Node(){}
        virtual Node * Insert(Data * theData)=0;
        virtual void Show()=0;
};

class InternalNode: public Node
{
   public:
         InternalNode(Data * theDat, Node * next);
         ~InternalNode() { delete myNext; delete myData;}
         virtual Node * Insert(Data * theData);
         virtual void Show() {myData->Show(); myNext->Show();}
   private:
         Data * myData;
         Node * myNext;
};                
    
InternalNode::InternalNode(Data * theData, Node * next):
    myData(theData), myNext(next) {}
    
    Node * InternalNode::Insert(Data * theData)
    {
        int result = myData->Compare(*theData);
        
        switch(result)
        {
            case kIsSame:
            case kIsLarger:
            {
                InternalNode * dataNode = new InternalNode(theData, this);
                return dataNode;
            }
            case kIsSmaller:
                myNext=myNext->Insert(theData);
                return this;
            }
            return this;
        }
        
class TailNode: public Node
{
    public:
        TailNode(){}
       ~TailNode(){}
        virtual Node * Insert(Data * theData);
        virtual void Show() {}
};

Node * TailNode::Insert(Data* theData)
{
    InternalNode * dataNode = new InternalNode(theData, this);
    return dataNode;
}

class HeadNode: public Node
{
    public:
        HeadNode();
        ~HeadNode(){delete myNext;}
        virtual Node * Insert(Data * theData);
        virtual void Show() {myNext->Show();}
    private:
        Node * myNext;
};

HeadNode::HeadNode()
{ 
    myNext=new TailNode();
}

Node * HeadNode::Insert(Data * theData)
{
    myNext=myNext->Insert(theData);
    return this;
}

class LinkedList
{
    public:
        LinkedList();
        ~LinkedList(){delete myHead;}
        void Insert(Data * theData);
        void ShowAll() {myHead->Show();}
    private:
        HeadNode * myHead;
};

LinkedList::LinkedList()
{
    myHead = new HeadNode;
}

void LinkedList::Insert(Data * pData)
{
    myHead->Insert(pData);
}

           
    
int main()
{
    Data * pData;
    int val;
    LinkedList ll;
    
    for(;;)
    {
        cout << "What value? (0 to stop): ";
        cin >> val;
        if(!val)
        break;
        pData=new Data(val);
        ll.Insert(pData);
    }
    
    ll.ShowAll();
    
   
        
    system("PAUSE");
    return 0;
}
Помогите разобраться в односвязном списке, не могу понять выполнение программы, что к чему.
Объясните на сколько можно подробнее...
0
11.10.2009, 20:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2009, 20:13
Помогаю со студенческими работами здесь

Динамические списки, жуть
Дали мне задание. Моделирование баз данных автомобилей с использованием динамическим списком. Я...

Динамические структуры: линейные списки
Люди помогите:wall: Дали задачу из учебника Павловской Вот вроде смотрю как в учебнике написано...

Динамические структуры данных. Списки
Ребят, срочно нужна помощь, помогите пожалуйста, кто чем может! Задание: В деке задать слово....

Динамические Списки!!!! Очень нужно...!
Помогите пожалуйста решить задачи на Си....горит стипендия(( Задача 1. Описать функцию, которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru