包含链表的 Pascal 二叉搜索树
Pascal binary search tree that contains linked lists
我需要使用递归函数搜索它的内容,所以它 returns 一个布尔值响应,取决于是否找到了我读取的值。我不知道如何让它工作。这是我定义的树的类型:
text=string[30];
list=^nodeL;
nodeL=record
title:text;
ISBN:text;
next:list;
end;
tree=^nodeT;
nodeT=record
cod:text;
l:list;
LC:tree;
RC:tree;
end;
这看起来像是“请为我完成作业post”,我不会这样做。我会尽力帮助你自己完成作业。
我不知道你的具体任务是什么,所以我将不得不做一些猜测。
我认为你的作业是编写一个递归函数来搜索树,return 根据是否找到一个值(函数的输入)返回一个布尔值响应。
我不知道树是如何获取其内容的。你说,你定义了树类型,所以我猜这意味着你没有提供已经有内容的树。因此,至少出于测试目的,您将不得不编写代码以将内容添加到树中(以便您可以搜索它)。
我不知道你应该创建什么样的树。通常树有关于项目如何在树中排列的规则。一种常见的树类型是二叉树,其中对于每个节点,左节点中的项目(如果存在)“小于”右节点中的项目(如果存在)。在向树中添加项目(即内容)时,您可能需要它。
我认为您需要更改树节点 nodeT 的定义(我可能是错的)。树是一种链表,它通常不包含链表。通常每个树节点都包含一个数据项(不是项目列表)。
如果我正在做这项作业(并学习用 Pascal 编程),我将执行以下操作(按此顺序):
确保我理解链接列表(至少 singe-linked 列表)。至少编写一个程序将数据添加到链表中,并搜索
它(不要使用递归)。
确保我理解递归。阅读一些关于递归的教程(不使用链表或树)。例如“First Textbook Examples of Recursion”。至少编写一个使用递归的程序(不要使用链表或树)。
确保我了解树木。阅读一些关于树的教程。例如,“Binary Search Trees”
做作业。
P.S。您可能希望将文本类型的名称从“文本”更改为“文本”,因为在 Pascal 中,“文本”是文本文件的预定义类型的名称。
我需要使用递归函数搜索它的内容,所以它 returns 一个布尔值响应,取决于是否找到了我读取的值。我不知道如何让它工作。这是我定义的树的类型:
text=string[30];
list=^nodeL;
nodeL=record
title:text;
ISBN:text;
next:list;
end;
tree=^nodeT;
nodeT=record
cod:text;
l:list;
LC:tree;
RC:tree;
end;
这看起来像是“请为我完成作业post”,我不会这样做。我会尽力帮助你自己完成作业。
我不知道你的具体任务是什么,所以我将不得不做一些猜测。
我认为你的作业是编写一个递归函数来搜索树,return 根据是否找到一个值(函数的输入)返回一个布尔值响应。
我不知道树是如何获取其内容的。你说,你定义了树类型,所以我猜这意味着你没有提供已经有内容的树。因此,至少出于测试目的,您将不得不编写代码以将内容添加到树中(以便您可以搜索它)。
我不知道你应该创建什么样的树。通常树有关于项目如何在树中排列的规则。一种常见的树类型是二叉树,其中对于每个节点,左节点中的项目(如果存在)“小于”右节点中的项目(如果存在)。在向树中添加项目(即内容)时,您可能需要它。
我认为您需要更改树节点 nodeT 的定义(我可能是错的)。树是一种链表,它通常不包含链表。通常每个树节点都包含一个数据项(不是项目列表)。
如果我正在做这项作业(并学习用 Pascal 编程),我将执行以下操作(按此顺序):
确保我理解链接列表(至少 singe-linked 列表)。至少编写一个程序将数据添加到链表中,并搜索 它(不要使用递归)。
确保我理解递归。阅读一些关于递归的教程(不使用链表或树)。例如“First Textbook Examples of Recursion”。至少编写一个使用递归的程序(不要使用链表或树)。
确保我了解树木。阅读一些关于树的教程。例如,“Binary Search Trees”
做作业。
P.S。您可能希望将文本类型的名称从“文本”更改为“文本”,因为在 Pascal 中,“文本”是文本文件的预定义类型的名称。