Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Alkcatras
0 / 0 / 0
Регистрация: 06.11.2011
Сообщений: 31
1

Проверить, есть ли в непустом дереве хотя бы два одинаковых элемента

31.03.2012, 11:37. Просмотров 604. Ответов 0
Метки нет (Все метки)

Описать логическую функцию проверяющую есть ли в непустом дереве хотя бы два одинаковых элемента

помогите переделать программу так как сказано выше........

Pascal
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
160
161
162
program Lana6;
type pnode=^node;
node=record
strana:string[30];
stolica:string[30];
ploshad:real;
left:pnode;
right:pnode;
end;
var root:pnode;
i:integer;
str:string[30];
stol:string[30];
pl:real;
key:real;
punkt:integer;
 
 
 
procedure print_tree(p:pnode);
var i:integer;
begin
if p<>nil then
begin
print_tree(p^.left);
writeln(p^.strana:30,p^.stolica:30,p^.ploshad:8:2);
print_tree(p^.right);
end;
end;
 
 
 
function find(root:pnode;key:real;var p,pp:pnode):boolean;
begin
p:=root;
while p<>nil do
begin
if p^.ploshad=key then
begin
find:=true;
exit;
end;
pp:=p;
if key<p^.ploshad
then p:=p^.left
else p:=p^.right;
end;
find:=false;
end;
 
 
 
procedure insert(var root:pnode;key:real;str:string;stol:string);
var p:pnode;
pp:pnode;
begin
if find(root,key,p,pp) then
begin
writeln('takaya zapis uge imeetsa');
exit;
end;
new(p);
p^.strana:=str;
p^.stolica:=stol;
p^.ploshad:=key;
p^.left:=nil;
p^.right:=nil;
if root=nil
then root:=p
else
if key<pp^.ploshad
then pp^.left:=p
else pp^.right:=p;
end;
 
 
 
function z(p:pnode):pnode;
var y:pnode;
prev:pnode;
begin
y:=p^.right;
if y^.left=nil
then y^.left:=p^.left
else
begin
repeat
prev:=y;
y:=y^.left;
until
y^.left=nil;
y^.left:=p^.left;
prev^.left:=y^.right;
y^.right:=p^.right;
end;
z:=y;
end;
 
 
procedure del(var root:pnode;key:real);
var p:pnode;
pp:pnode;
y:pnode;
begin
if not find(root,key,p,pp) then
begin
writeln('takogo elementa net');
exit;
end;
if p^.left=nil
then
y:=p^.right
else
if p^.right=nil
then
y:=p^.left
else
y:=z(p);
if p=root
then
root:=y
else
if key<pp^.ploshad
then pp^.left:=y
else pp^.right:=y;
dispose(p);
end;
 
 
begin
root:=nil;
repeat
writeln('1-vstavka, 2-udalenie, 3-vivod na ekran, 4-vihod');
readln(punkt);
case punkt of
1:begin
writeln('nazvanie strani');
readln(str);
Writeln('stolica?');
readln(stol);
writeln('plochad?');
readln(pl);
key:=pl;
insert(root,key,str,stol);
end;
2:begin
writeln('kluch dla udaleniya?:Plochad strani');
readln(key);
del(root,key);
end;
3:begin
writeln('vivod spiska na ekran');
if root=nil
then writeln('derevo pustoe')
else
print_tree(root);
end;
end;
writeln('-------');
until
punkt=4;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 11:37
Ответы с готовыми решениями:

Проверить, есть ли в списке хотя бы два одинаковых элемента
Написать логическую функцию, которая проверяет, есть ли в списке хотя бы два...

Проверить, есть ли в списке L хотя бы два одинаковых элемента
1)Составить программу, которая проверяет, есть ли в списке L хотя бы два...

Проверить, есть ли в списке хотя бы два одинаковых элемента
Дан список А, состоящий из записей: первое поле – символ, второе – адрес...

Определить, есть ли в списке хотя бы два одинаковых элемента
Помогите решить или решите если не сложно задачу.. Составить программу,...

Описать логическую функцию, описывающую,есть ли в дереве Т хотя бы два одинаковых элемента
помогите пожалуйста решить задачу. описать логическую функцию, описывающую,есть...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 11:37

Продемонстрировать работу логической функции same(T), определяющую, есть ли в дереве Т хотя бы два одинаковых
program Project9; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils;...

Дана целочисленная матрица А(10,10). Если на главной диагонали матрицы есть хотя бы два одинаковых элемента, то найти в матрице индексы минимального э
Дана целочисленная матрица А(10,10). Если на главной диагонали матрицы есть...

Опишите подпрограмму, которая проверяет если ли в списке хотя бы два одинаковых элемента.
Опишите подпрограмму, которая проверяет если ли в списке хотя бы два одинаковых...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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