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

Однонаправленный список элементов - C++

Восстановить пароль Регистрация
 
Kronus250
0 / 0 / 0
Регистрация: 10.09.2012
Сообщений: 34
22.10.2013, 21:54     Однонаправленный список элементов #1
Всем привет. Помогите подправить задачу. Суть задачи следующая- создать список, добавить 3 функции(добавление,удаление,показ элементов).Основная проблема в функции добавления.Заранее спасибо!

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
84
85
#include<iostream>
using namespace std;
struct elem{int data;elem *pe;};
class Spisok {private: 
elem *pnov,*pbegin,*ptek;
public:
    void add(int w);
    int show(void);
    void delet(int x);
    Spisok(void);};
 
    Spisok::Spisok(void)
    { 
        pnov=0;pbegin=0;ptek=0;
    }
    ;
    ///////////////////////////////////////////////////////
    void Spisok::add(int w)
    {  
        pnov=new elem;
        pnov->data=w;
        pnov->pe=0;
 
        if (pbegin==0){pbegin=pnov;return;};// proverka chto mass pust
 
        for(int i=0; ;i++)// proverka chto takoi elem est
        {
            if ((pnov->data)==(ptek->data))
            {
                cout<<"Takoi elem ect";return;
                ;return;
            };
        };
 
        for(int i=0; ;i++)//вставка в начало
        {
            if((pnov->data)<(pbegin->data))
        {
            pnov->pe=pbegin;
            pbegin=pnov;return;return;};};
 
        {ptek=pbegin;
        for(int i=0;;i++)
        {
            if(((pnov->data)>(ptek->data))&&((ptek->pe)==0))
        {ptek->pe=pnov;break;}
        else
            if  (((pnov->data)>(ptek->data))&&(((ptek->pe)->data)>(pnov->data)))
            {pnov->pe=ptek->pe;
        ptek->pe=pnov;break;};
        ptek=(ptek->pe);return;};
        };
        };
 
    ////////////////////////////////////////
    int Spisok::show(void)
    { ptek=pbegin;
    while(ptek)
    {cout<< (ptek->data)<<";";
    ptek=ptek->pe;
    };return 0;};
    //////////////////////////////////////////////
    void Spisok::delet(int x)
    {ptek=pbegin;
    for (int i=0;;i++)
    {if(ptek->data==x)
    {pbegin=ptek->pe;cout<<"del";return;}
    if ((((ptek->pe)->data)==x) && ((ptek->pe)->pe)!=0)
    {ptek->pe=ptek->pe->pe;cout<<"del";return;}
    if(((ptek->pe)->data==x)&&((ptek->pe)->pe)==0){ptek->pe=0;cout<<"del";return;};
    ptek=ptek->pe;
    };
    };
    /////////////////////////////////////////////////////
    int main()
    {Spisok S; 
    S.add(6);
    S.add(4);
    S.add(3);
    S.add(5);
    ///S.delet(6);
    S.show();
    system("pause");
    return 0;
    };
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2013, 21:54     Однонаправленный список элементов
Посмотрите здесь:

однонаправленный список C++
Однонаправленный список C++
C++ Добавление элементов в однонаправленный список
C++ однонаправленный список элементов (удвоить каждый элемент списка)
C++ однонаправленный список
Линейный однонаправленный список. Описать процедуру добавления одного или нескольких элементов C++
Построить однонаправленный список из элементов файла C++
C++ Однонаправленный список из квадратов отрицательных элементов первого списка

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

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

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