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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
wowan30002
2 / 2 / 0
Регистрация: 23.05.2012
Сообщений: 194
#1

Создать новый связный список из различных элементов данного - C++

02.11.2012, 19:43. Просмотров 318. Ответов 0
Метки нет (Все метки)

Создать связный список. Создать новый список из различных элементов данного, включив в информационную часть узла количество его вхождения в первоначальный список.
Помогите сделать каким то другим способом
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
#include<iostream.h>
#include<conio.h>
#include<alloc.h>
typedef struct list
{
  int val;
  struct list *next;
}listn,*listp;
listp func()
{ listp p;
  p=(listp) calloc (1,sizeof(listn));
  return p;
}
//----------------------------------
listp A()
{
  listp dl,b,c;
  int z=0;
    b=func();
    cin>>b->val;
    b->next=0;
  dl=b;
  cout<<"element(0/1)"<<endl; cin>>z;
  while (z==1)
  { c=func();
 
 
 
 
 
    cin>>c->val;
    c->next=0;
    //c->next=b->next;
    b->next=c;
    b=c;
    cout<<"elem...(0/1)"<<endl; cin>>z;
  }
  return dl;
}
typedef struct list2
{
 int val;
 struct list2 *next;
 int k;
}listn2, *listp2;
listp2 func2()
{
  listp2 p;
  p=(listp2) calloc (1,sizeof(listn2));
  return p;
}
void print (listp n)
{
  listp q;
  if(n==NULL) cout<<"dani ne vvedeni"<<endl;
  q=n;
  while(q!=NULL)
  {
   cout<<"val "<<q->val<<endl;
   q=q->next;
  }
}
listp del(listp dl,int p, listp2 r)
{
  listp q=dl, l;
  while (dl->val==p) { q=dl; dl=dl->next; r->k++;}
  l=dl;
  while (l->next!=NULL)
  {
    if (l->next->val==p) { q=l->next; r->k++;}
    l=l->next;
  }
  delete q;
  print (dl);
  return dl;
 
}
void print2 (listp2 n)
{
  listp2 q;
  if(n==NULL) cout<<"dani ne vvedeni"<<endl;
  q=n;
  while(q!=NULL)
  {
   cout<<"val "<<q->val<<" kil "<<q->k<<endl;
   q=q->next;
  }
}
void create2 (listp n)
{
  listp q, p=n;
  listp2 dr,r, t;
  if(n==NULL) cout<<"dani ne vvedeni"<<endl;
  q=n;
   r=func2();
   r->val=q->val;
   r->next=0;
   dr=r;
   p=del(n, q->val,r);
   cout<<"P = "<<p->val;
   getch();
   while(p!=NULL)
  {
   t=func2();
   t->val=p->val;
   t->next=0;
   r->next=t;
   r=t;
   p=del(p, p->val,t);
  }
  print2(dr);
}
void main ()
{
clrscr();
 listp p=A();
 print(p);
 create2(p);
 getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 19:43     Создать новый связный список из различных элементов данного
Посмотрите здесь:

Создать класс для работы со стеком, организованным как связный однонаправленный список C++
C++ Связный список
C++ Связный список
Создать новый массив из различных элементов исходного массива C++
Связный список C++
Связный список (создать и реализовать операции над ним) C++
C++ Связный список; удаление равных максимальному элементов
C++ Связный список
Создать новый одномерный массив, состоящий из отрицательных элементов данного массива 3х3 в заданной матрицы C++
Создать связный динамический список двунаправленный и в нем обеспечить подсчет элементов C++
Связный список C++

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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru