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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Dev-c++ http://www.cyberforum.ru/cpp-beginners/thread73063.html
Так получилось, что должен некоторое время поработать в этом известном бесплатном компиляторе. В отличие от builder'а, где AnsiString интегрирован, такого удовольствия в dev-c++ нет. Зато есть такой класс, как String, позволяющий работать со строками в стиле с++. В корневой директории и в папке include есть заголочные файл string.h и strings.h, по логике, в которых должен описываться класс...
C++ Не получается вызвать функцию Есть функция "void __fastcall TForm1::Image2MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)" Нужно вызвать ее в другой функции.. Как это сделать?? Пробовал тупо "Image2MouseDown()" - пишет "too few parameters".. http://www.cyberforum.ru/cpp-beginners/thread73062.html
перевод в двоичную систему через классы C++
Помогите решить задачу используя классы. Дано натуральное число Р. Переведите его в двоичную систему счисления.
Создание и обработка файлов в С C++
Для участия в конкурсе исполнителей необходимо заполнить анкету с данными: -Ф.И.О; -год рождения; -название страны; -класс музыкального инструмента (гитара, фортепиано, скрипка). Вывести список самых молодых лауреатов конкурса по классам инструментов в порядке за-нятых мест.
C++ Изменение длины строк в динамическом массиве. http://www.cyberforum.ru/cpp-beginners/thread73048.html
Доброго времени суток! Имеется код : #include "stdafx.h" #include <iostream.h> #include <stdlib.h> int main() { int t,a=0,b=0,z,x,y,s; int **mas; cout<<"vvedite kol-vo strok : ";
C++ Матрица, заменить диагонали - нулями Пожалуйста, помогите с программой на Си (C), буду очень благодарен за помощь. Вот условие: 1) Дано матрицу А размером 6х6. Заменить в матрице элементы главной диагонали нулями. Нашол аналогичною задачю на паскале, но чтота нечто не виходит .... Если, не трудно, то еще 1 задачу, думаю для профессионалов это не составит труда. Вот условие: 2) Дан одномерный массив P, состоящий из 16... подробнее

Показать сообщение отдельно
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
12.12.2009, 19:34
Да.
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#include <iostream>
 
struct nodes
{
    
    void sort();
    void push(int value);
    void pop(int* value);
    void show();
    bool is_full();
    
    int* array;
    nodes* prior;
    
    nodes(){array = new int [10];top = 0;}
    ~nodes(){delete[] array;}
    int top; // показывает на первое свободное место
};
//============================================================
struct linked_lists
{
 
        void show(); // для контроля
        void add(int value);
                
        linked_lists(){tail = NULL;}
        ~linked_lists();
        nodes* tail;        
};
 
//============================================================
int main()
{
        linked_lists a;
        
        a.show();
        system("pause");
        for(int i=0;i<15;i++) 
        {
                a.add(-i*i+10*i);
                a.show();
                system("pause");
        }
        system("cls");
        
        
        a.show();       
    system("pause");
    delete &a;
    system("pause");
        return 0;
}
 
//============================================================
void nodes::push(int value)
{
    if (top>9) return; // на всякий случай.
    array[top++]=value;
}
 
void nodes::pop(int* out)
{
    if (!top) return; // на всякий случай.
    
    *out = array[--top];
}
 
void nodes::show()//для контроля
{
    for(int i=0;i<top;i++) std::cout<<"  "<<array[i];
}
 
void nodes::sort()                  //вставками.
{ 
    int tmp, i, j;
    for ( i=0; i < top; i++)
    {  
        tmp = array[i];   
        for ( j=i-1; j>=0 && array[j] > tmp; j--)
            array[j+1] = array[j];
        array[j+1] = tmp;
    }
}
bool nodes::is_full()
{
    return (top==10);
}
 
 
// =====================================================================
void linked_lists::add(int value)
{
    if (tail==NULL) { tail = new nodes(); tail->prior=NULL;}
    //если список пуст, создаём узел.
 
    if(!tail->is_full())// если узел не полнoн, то засовываем туда value
    {
        tail->push(value);
        tail->sort();
    }
    else 
    //если узел полон, создаем новый, перекидываем в него пять последних элементов
    {
        nodes* node = new nodes();
        node->prior = tail;//связали со списком.
        
        int tmp;
        for(int i=1;i<=5;i++)
        {
            tail->pop(&tmp);
            node->push(tmp);
        }
        // 5 элемент сравнивается с value. больший отпавляется в новый узел.
        // меньший остается.
        tail->pop(&tmp);
        if(value<tmp) {tail->push(value);node->push(tmp);}
        else {tail->push(tmp);node->push(value);}
        
        // осталось только переопределить указатель на хвост
        
        tail = node;
        
    }
    
}
 
 
void linked_lists::show()
{
    if(tail==NULL) {std::cout<<"\n linked-list is empty now..\n\n";return;}
    nodes* ip = tail;
    while (true)
    {
        std::cout<<ip;
        ip->show();
        std::cout<<"\n";
        if(ip->prior==NULL) break;
        ip=ip->prior;
    }
 
}
 
linked_lists::~linked_lists()
{
    if(tail==NULL) {std::cout<<"\nmemory is free!!\n";return;}
    
    nodes* ip = tail;
    while (ip->prior!=NULL)
    {
        tail = ip;
        ip=ip->prior;
        delete tail;
    }
    delete ip;
    std::cout<<"\n memory is free!!!";  
    }
 
 
//======================================================================
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru