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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужна хеш-функция для программы на языке С++ http://www.cyberforum.ru/cpp-beginners/thread145488.html
К моей программе необходимо прикрутить функцию для вычисления хеша. Подскажите, пожалуйста, работоспособный исходник хеш-функции для программы на языке С++.
C++ Структуры помогите плз плз плз плз плз ЛЮБУЮ ИЗ "2" 1) N учеников проходили тестирование, выполнив M тестов по какому-либо предмету. Сколько очков набрал каждый ученик по... http://www.cyberforum.ru/cpp-beginners/thread145476.html
Рекурсия: размещения из 10 по 3 элемента C++
Помогите Плз Плз Плз Плз Плз Получить все размещения из 10 элементов 1, 2,..., 10 по 3 в каждом. Размещением называется выборка из п указанных элементов т неповторяющихся элементов.
C++ Заменить все прописные буквы на строчные
Подредактируйте код, нужно поменять все прописные буквы на строчные буквы. Только вот программа не запускается. Код: #include <stdio.h> #include <ctype.h> int main(void){ char...
C++ исходник win calc http://www.cyberforum.ru/cpp-beginners/thread145469.html
Здрасти. Не знаю в какой раздел написать лучше, написал в самый лучший. А ктони-будь знает где можно посмотреть исходный код калькулятора windows компании microsoft?
C++ Описать рекурсивную функцию, вычисляющую значение двойного факториала Описать рекурсивную функцию Fact2(N) вещественного типа,вычисляющую значение двойного факториала N!! = N*(N-2)*(N-4)*... (N>0 - параметр целого типа;последний сомножитель в произведении равен 2,если... подробнее

Показать сообщение отдельно
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
14.06.2010, 23:35
baygav,
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
#include<iostream.h>
struct node
{
  int  elem;
  node *sled;
};
 class Spisok {
   private:
     node *phead, *Res;
   public:
     Spisok() {phead=new(node);Res=NULL;}
     ~Spisok() {delete phead;}
     void POSTROENIE ();
     void VYVOD ();
     node *POISK (int);
     void YDALE ();
     void YDALE1();
     void OCHISTKA();
 };
 
void main ()
{
  Spisok A;
  int   el;
  node *Res_Zn;
 
  A.POSTROENIE ();
  A.VYVOD ();
  cout<<"\nВведите элемент звена, после которого ";
  cout<<"осуществляется удаление:\n";
  cin>>el;
  Res_Zn=A.POISK (el);
  if  (Res_Zn!=NULL && (*Res_Zn).sled!=NULL)
    {A.YDALE (); A.VYVOD ();}
  else  cout<<"Звена с заданным элементом в списке нет!";
  cout<<"\nВведите удаляемый элемент звена:\n";
  cin>>el;
  Res_Zn=A.POISK (el);
  if  (A.POISK (el)!=NULL)
  {
    A.YDALE1 (); A.VYVOD (); cout<<endl;
  }
  else  cout<<"Звена с заданным элементом в списке нет!";
  A. OCHISTKA();
}
 
void Spisok::POSTROENIE ()
//Построение однонаправленного списка с заглавным звеном.
//phead -указатель на заглавное звено
{
  node *t;
  int  el;
 
  t = phead; (*t).sled = NULL;
  cout<<"Вводите элементы звеньев списка: ";
  cin>>el;
  while  (el!=0)
  {
    (*t).sled = new (node);
    t = (*t).sled; (*t).elem = el; (*t).sled = NULL;
    cin>>el;
  }
}
 
void Spisok::VYVOD ()
//Вывод содержимого однонаправленного списка.
//phead - указатель на заглавное звено.
{
  node *t;
 
  t = phead; t = (*t).sled;
  cout<<"Список: ";
  while  (t!=NULL)
  {
     cout<<(*t).elem <<" ";
    t = (*t).sled;
  }
}
 
 node *Spisok::POISK (int el)
//Поиск звена с элементом el в списке, заданном указателем phead.
//В случае успешного поиска в Res находится адрес искомого звена  
//списка. В противном случае Res содержит NULL.
{
  node *t;
 
  Res = NULL; t = phead; t = (*t).sled;
  while  (t!=NULL && Res==NULL)
    if  ((*t).elem==el)  Res = t;
    else  t = (*t).sled;
  return Res;
}
 
void Spisok::YDALE ()
//Удаление звена, расположенного после звена,
//на которое указывает ссылка Res. 
{
  node *q;
  q = (*Res).sled;
  if  (q!=NULL)
  {
    //Если звено, после которого нужно удалять,
    //не является последним, то:
    (*Res).sled = (*(*Res).sled).sled; delete q;
  }
  else
    cout<<"Звено с заданным элементом - последнее!\n";
}
 
void Spisok::YDALE1 ()
//Удаление звена, на которое указывает ссылка Res.
{
  node *q,*q1,*q2;
 
  q = (*Res).sled;
  if  (q!=NULL)
  {
    (*Res).elem = (*q).elem; (*Res).sled = (*q).sled;
    delete q;
  }
  else
  {
     q1 = phead; q2 = (*q1).sled;
    while  (q2!=Res)
    {
        q1 = q2; q2 = (*q2).sled;
    }
    (*q1).sled = NULL; q2 = NULL; delete Res;
  }
}
 
void Spisok::OCHISTKA ()
//Удаление однонаправленного списка из памяти.
// phead - указатель на заглавное звено списка.
{
  node *q,*q1;// Рабочие указатели.
 
  q = phead;
  q1 = (*q).sled; // Указатель q1 "опережает" указатель q.
  while (q1!=NULL)
  { q = q1; q1 = (*q1).sled; delete q;}
не моё но это как шаблон для дальнейших размышлений.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru