一般数据结构中的visit函数具体意义是什么,其作用是什么?
给出定义的内容,不要纯算法,要文子解说的,还有就是有关二叉树链表的status(*Visit)(TElemTypee)指的是什么?回答好的加分。...
给出定义的内容,不要纯算法,要文子解说的,还有就是有关二叉树链表的status (* Visit)(TElemType e)指的是什么?回答好的加分。
展开
2个回答
展开全部
visit 一般是指树型链表结构中对某个节点内容进行访问的函数,就是取出节点内容去做某一件事,通常算法中不写出具体函数内容。
树型链表结构中自顶开始按照某种顺序顺藤摸瓜至某个节点的过程称为“遍历”:
void traverse(link h, void visit(link))
{
if (h == 0) return;
visit(h);
traverse(h->l, visit);
traverse(h->r, visit);
}
前序遍历(非递归):
非递归的基于栈的函数与上面的递归函数在功能上是相等的。
void traverse(link h, void visit(link))
{
Stack<link> s;
s.push(h);
while(!s.empty())
{
visit(h = s.pop());
if (h->l != 0) s.push(h->l);
if (h->r != 0) s.push(h->r);
}
}
层次顺序的遍历:
把前序遍历中基本数据结构从栈转变成队列,这样的转变就使遍历转成层次顺序的。
void traverse(link h, void visit(link))
{
Queue<link> q;
q.put(h);
while (!q.empty())
{
visit(h = q.get());
if (h->l != 0) q.put(h->l);
if (h->r != 0) q.put(h->r);
}
}
树型链表结构中自顶开始按照某种顺序顺藤摸瓜至某个节点的过程称为“遍历”:
void traverse(link h, void visit(link))
{
if (h == 0) return;
visit(h);
traverse(h->l, visit);
traverse(h->r, visit);
}
前序遍历(非递归):
非递归的基于栈的函数与上面的递归函数在功能上是相等的。
void traverse(link h, void visit(link))
{
Stack<link> s;
s.push(h);
while(!s.empty())
{
visit(h = s.pop());
if (h->l != 0) s.push(h->l);
if (h->r != 0) s.push(h->r);
}
}
层次顺序的遍历:
把前序遍历中基本数据结构从栈转变成队列,这样的转变就使遍历转成层次顺序的。
void traverse(link h, void visit(link))
{
Queue<link> q;
q.put(h);
while (!q.empty())
{
visit(h = q.get());
if (h->l != 0) q.put(h->l);
if (h->r != 0) q.put(h->r);
}
}
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询