资源简介
函数填空:层次遍历多元树(在文件tree.cpp中3个空)、先根遍历、后根遍历的递归函数(在文件tree.h中2个空);
代码片段和文件信息
// tree.cpp : Defines the entry point for the console application.
//
#include “tree.h“
#include “queue.h“
#include
void hierarchical(TreeNode* t)
// 层次遍历以结点t为根的多元树
{
SeqQueue myqueue; // 队列对象
if (t==NULL) return;
myqueue.QInsert(t); // 把根插入队列
while(myqueue.QueueEmpty()== 0 /* 输入判断条件 */ ) // 队列非空
{
TreeNode *p=myqueue.QDelete(); //取出队首结点
cout<data<<“ “; //访问该结点
p= p->FirstChild();/* 输入表达式 */ //先找大儿子(左儿)
if (p!=NULL) myqueue.QInsert(p); // 大儿子入队
while (p!=NULL) // 把大儿子的右兄弟依次入队
{
p= p->NextSibling();/* 输入表达式 */
if (p!=NULL) myqueue.QInsert(p);
}
}
}
void main(void)
{
//指定的树
cout<<“下面是实验指定的树“< Treet;
t.InsertChild(‘A‘);
for(int i=0;i<3;i++)
{
t.Root();
t.InsertChild(‘B‘+i);//插入B、C和D
}
t.Root();//插入E
t.FirstChild();
t.InsertChild(‘E‘);
for(i=0;i<2;i++)//插入F和G
{
t.Root();
t.FirstChild();
t.NextSibling();
t.InsertChild(‘F‘+i);
}
t.Root();//插入H
t.FirstChild();
t.NextSibling();
t.NextSibling();
t.InsertChild(‘H‘);
TreeNode* troot=t.TreeRoot();
//层次遍历的指针是指向结点,而不是指向树
cout<<“层次遍历:“< hierarchical(troot);
cout< t.DisplayTree();
cout< t.DisplayTree2();
//自己的树
cout< Treet1;
t1.InsertChild(‘A‘);
t1.Root();
t1.InsertChild(‘B‘);//插入B
for(i=0;i<2;i++)
{
t1.Root();//插入C和D
t1.FirstChild();
t1.InsertChild(‘C‘+i);
}
for(i=0;i<3;i++)//插入E、F和G
{
t1.Root();
t1.FirstChild();
t1.FirstChild();
t1.InsertChild(‘E‘+i);
}
TreeNode* troot1=t1.TreeRoot();
//层次遍历的指针是指向结点,而不是指向树
cout<<“层次遍历:“< hierarchical(troot1);
cout< t1.DisplayTree();
cout< t1.DisplayTree2();
cout< system(“pause“);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1060 2002-04-15 11:23 1\Queue.h
文件 2091 2010-05-23 16:28 1\tree.cpp
文件 217171 2010-05-23 14:21 1\tree.exe
文件 5603 2010-05-23 13:57 1\tree.h
目录 0 2010-05-23 16:41 1
----------- --------- ---------- ----- ----
225925 5
评论
共有 条评论