You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
program project1;
type
pSTreeNode = ^TSTreeNode;
TSTreeNode = record
info: char;
key:integer;
left:pSTreeNode;
right:pSTreeNode;
end;
function Search(akey:integer):pSTreeNode;
var pTemp:pSTreeNode;
begin
pTemp:pRoot;
result:nil;
while (pTemp <> nil) do
if (akey = pTemp^.key) then
begin result:=pTemp; break; end
else if (akey < pTemp^.key) then pTemp:=pTemp^.left
else pTemp:=pTemp^.right;
end;
procedure AddNode(var pTemp:pSTreeNode; akey:integer);
begin
if (pTemp=nil) then
begin
New(pTemp);
pTemp^.key:=akey;
pTemp^.info:=char;
pTemp^.left:=nil;
pTemp^.right:=nil;
end
else if (akey < pTemp^.key) then
AddNode(pTemp^.left, akey)
else if (akey > pTemp^.key) then
AddNode (pTemp^.right, akey)
else //обработка неуникального ключа
end;
var
pRoot:pSTreeNode;
menu:byte;
begin
repeat
WriteLn('1. Поиск вершины с заданным значением ключа с выводом счётчика числа появлений данного ключа');
WriteLn('2. Добавление новой вершины в соответствии со значением её ключа или увеличение счётчика числа появлений');
WriteLn('3. ');
WriteLn('4. ');
WriteLn('5. ');
WriteLn('6. Выход из программы');
Write('Введите значение: ');
ReadLn(menu);
until menu=6;
end.
The text was updated successfully, but these errors were encountered:
program project1;
type
pSTreeNode = ^TSTreeNode;
TSTreeNode = record
key: integer;
left: pSTreeNode;
right: pSTreeNode;
end;
var
pRoot, Node: pSTreeNode;
answer, inform: char;
Nodekey: integer;
function Search(akey: integer): pSTreeNode;
var
pTemp: pSTreeNode;
begin
pTemp := pRoot;
Result := nil;
while (pTemp <> nil) do
if (akey = pTemp^.key) then
begin
Result := pTemp;
break;
end
else if (akey < pTemp^.key) then
pTemp := pTemp^.left
else
pTemp := pTemp^.right;
end;
procedure AddNode(var pTemp: pSTreeNode; akey: integer);
begin
if (pTemp = nil) then
begin
New(pTemp);
pTemp^.key := akey;
pTemp^.left := nil;
pTemp^.right := nil;
end
else if (akey < pTemp^.key) then
AddNode(pTemp^.left, akey)
else if (akey > pTemp^.key) then
AddNode(pTemp^.right, akey)
else writeln('Данный ключ уже используется!');
end;
begin
repeat
WriteLn('1 - Поиск');
WriteLn('2 - Добавление');
WriteLn('3 - Построничный вывод');
WriteLn('4 - Вывод вершин');
WriteLn('5 - Удаление');
WriteLn('close - Выход из программы');
Write('Введите значение: ');
ReadLn(answer);
case answer of
'1':begin
write('Введите ключ для поиска: ');readln(Nodekey);
end;
'2':begin
writeln('Введите добавляемый'); readln(Nodekey);
if pRoot = nil then AddNode(pRoot, Nodekey)
else AddNode(Node, Nodekey) end;
end;
until (answer = 'c') or (answer = 'close') or (answer = '6');
end.
The text was updated successfully, but these errors were encountered: