Форум программистов, компьютерный форум CyberForum.ru

односвязный список - C++

Восстановить пароль Регистрация
 
besh]<a
 Аватар для besh]<a
12 / 10 / 1
Регистрация: 02.11.2009
Сообщений: 194
17.02.2011, 19:19     односвязный список #1
spisok.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
struct entry
{
    bool R;
    short data[4];
    entry *next;
};
 
class MyQueue
{
    private:
        entry *first;
        int count;
    public:
        MyQueue();
        ~MyQueue();
        void Add(entry mq);
        void AddRandom();
        void Show();
        void Clear();
};
spisok.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include "spisok.h"
#include<iostream.h>
#include<ctime.h>
//---------------------------------------------------------------------------
 
MyQueue::MyQueue()
{
    first=0;
    count=0;
    srand(time(0));
}
//---------------------------------------------------------------------------
MyQueue::~MyQueue()
{
    entry *bFirst;
    if(first!=0)
    {
        do
        {
            bFirst=first;
            first=first->next;
            delete bFirst;
        }
        while(first!=0);
    }
}
//---------------------------------------------------------------------------
void MyQueue::Add(entry bEntry)
{
    entry *prev;
    entry *temp= new entry;
    temp->R=bEntry.R;
    for(int i=0;i<4;i++)temp->data[i]=bEntry.data[i];
   // temp->next=0;
 
    if(first==0){ first=temp;cout<<"GET!";}
    else
    {
        cout<<"I TRY~!"<<endl;
        prev=first->next;
        //
        /*do
        {
            prev=prev->next;
            cout<<"NEXT!"<<endl;
        }
        while(prev!=0);*/   while(prev!=0) prev=prev->next;
        prev=temp;
        prev->next=0;
    }
    temp->next=0;
}
//---------------------------------------------------------------------------
void MyQueue::AddRandom()
{
    entry *prev;
    entry *temp= new entry;
    temp->R=rand()%2;
    for(int i=0;i<4;i++)temp->data[i]=rand()%10;
    temp->next=0;
 
    if(first==0) first=temp;
    else
    {
        prev=first;
        while(prev!=0) prev=prev->next;
        prev=temp;
    }
}
//---------------------------------------------------------------------------
void MyQueue::Show()
{
    if(first==0) cout<<"ГЇГіГ±ГІГ®";
    entry *prev=first;
    do
    {
        cout<<"R="<<prev->R<<"\t|\t";
        for(int i=0;i<4;i++)cout<<prev->data[i]<<"\t";
        cout<<endl;
        prev=prev->next;
    }
    while(prev!=0);
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int main(int argc, char* argv[])
{
    char k;
    MyQueue FIFO2;
 
    entry buf;
 
    buf.R=1;
    for(int i=0;i<4;i++)buf.data[i]=1;
    FIFO2.Add(buf);
 
    buf.R=1;
    for(int i=0;i<4;i++)buf.data[i]=2;
    FIFO2.Add(buf);
    FIFO2.Add(buf);
    FIFO2.Add(buf);
 
    //for(int i=0;i<5;i++)FIFO2.AddRandom();
    FIFO2.Show();
 
    cin>>k;
 
    return 0;
}
блин че не так... добавляется 1 элемент и все
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2011, 19:19     односвязный список
Посмотрите здесь:

Односвязный список C++
C++ Односвязный список
односвязный список C++
C++ Односвязный список
Односвязный список C++
C++ Односвязный список
Односвязный список C++
C++ Односвязный список

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru