可以用缩格(或移行)的文本形式(Indented Text)来表示一棵树的结点数据。例如,下面图(a)所示的树的缩格文本形式如图(b)所示。试设计一个算法,将用左子女-右兄弟链表表示的树用缩格文本形(
Posted Roam-G
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以用缩格(或移行)的文本形式(Indented Text)来表示一棵树的结点数据。例如,下面图(a)所示的树的缩格文本形式如图(b)所示。试设计一个算法,将用左子女-右兄弟链表表示的树用缩格文本形(相关的知识,希望对你有一定的参考价值。
可以用缩格(或移行)的文本形式(Indented Text)来表示一棵树的结点数据。例如,下面图(a)所示的树的缩格文本形式如图(b)所示。试设计一个算法,将用左子女-右兄弟链表表示的树用缩格文本形式输出。
【解答】
下面给出树的左子女-右兄弟表示的类声明。
template <class Type>
class Tree;
template <class Type>
class TreeNode //树的结点类
friend class<Type> Tree;
private:
Type data; //数据
TreeNode<Type> *firstChild, *nextSibling; //子女及兄弟指针
public:
TreeNode ( Type value = 0, TreeNode<Type> *fc = NULL, TreeNode<Type> *ns = NULL )
:data (value), firstChild (fc), nextSibling (ns)
//构造函数
Type getData ( ) return data; //取得结点数据
TreeNode<Type> * getFirstChild ( )
return firstChild; //取得第一个子女地址
TreeNode<Type> * getNextSibling ( )
return nextSibling; //取得下一个兄弟地址
void setData ( Type x )
data = x; //修改结点数据
void setFirstChild ( TreeNode<Type> * fc )
firstChild = fc; //修改第一个子女地址
void setNextSibling ( TreeNode<Type> * ns )
nextSibling = ns; //修改下一个兄弟地址
;
template <class Type> class Tree //树类
private:
TreeNode<Type> *root, *current; //根指针及当前指针
void PreOrder ( ostream & out, TreeNode<Type> *p );
int Find ( TreeNode<Type> *p, Type target );
void RemovesubTree ( TreeNode<Type> *p );
int FindParent ( TreeNode<Type> *t, TreeNode<Type> *p );
public:
Tree ( ) root = current = NULL; //构造函数, 建立空树
void BuildRoot ( Type rootVal );
int Root ( ); //寻找根,使之成为当前结点
int FirstChild ( ); //寻找当前结点的第一个子女
int NextSibling ( ); //寻找当前结点的下一个兄弟
int Parent ( ); //寻找当前结点的双亲结点
//树的其他公共操作
……
将以左子女-右兄弟链表表示的树用缩格文本形式打印出来的算法如下:
#include <iostream.h>
#include “Tree.h”
template <class Type> void indentedText ( TreeNode<Type>*t, int k )
if ( t != NULL )
for ( int i = 0; i < k; i++ ) cout << “ ”;
cout << t->getData ( );
t = t->getFirstChild ( );
while ( t != NULL )
indentedText ( t, k+1 );
t = t->getNextSibling ( );
以上是关于可以用缩格(或移行)的文本形式(Indented Text)来表示一棵树的结点数据。例如,下面图(a)所示的树的缩格文本形式如图(b)所示。试设计一个算法,将用左子女-右兄弟链表表示的树用缩格文本形(的主要内容,如果未能解决你的问题,请参考以下文章
Json Formatting.Indented 使用 Web Api 控制器、ASP.NET MVC
IndentationError: expected an indented block
IndentationError: expected an indented block错误