教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

数据结构实验之线索化二叉树

来源:网络收集 时间:2026-06-29
导读: 数据结构实验之线索化二叉树 //线索二叉树 (1)先确定是用先序线索化 // (2)确定顺序 // (3)按顺序依次线索化每一个指针 //可一次就线索化,提高效率 1 必须有指针指向前趋 // // 先序线索化遍历, 中序线索化遍历,后序线索化遍历. #include malloc.h #inclu

数据结构实验之线索化二叉树

//线索二叉树 (1)先确定是用先序线索化
// (2)确定顺序
// (3)按顺序依次线索化每一个指针

//可一次就线索化,提高效率 1 必须有指针指向前趋
//
// 先序线索化遍历, 中序线索化遍历,后序线索化遍历.



#include "malloc.h"
#include "iostream.h"
#define null 0

typedef struct LinkNode
{
int child;
struct LinkNode *next;
}LNode;

typedef struct TreeNode
{
char data;
int parent;
LNode *firstchild;
}TNode;

typedef struct SequenceList
{
TNode *elem;
int length;
int listsize;
}STree;

void initSTree(STree &Tree)
{
Tree.elem=(TNode *)malloc(100*sizeof(TNode));
Tree.length=0;
Tree.listsize=100;
}
int create(STree &Tree)
{
int i;
int x,y;
LNode *p,*q;
cout<<"please input node numbers of the tree.\n";
cin>>Tree.length;
cout<<"please each node of the tree.\n";
for(i=0;i<Tree.length;i++)
{
cin>>Tree.elem[i].data;
Tree.elem[i].parent=-1;
Tree.elem[i].firstchild=null;
}
cout<<"please each edge of the tree .\n";
for(i=0;i<Tree.length-1;i++)
{
cin>>x>>y;
Tree.elem[y].parent=x;
p=(LNode *)malloc(sizeof(LNode));
p->child=y;
q=Tree.elem[x].firstchild;
if(q==null)
{
p->next=Tree.elem[x].firstchild;
Tree.elem[x].firstchild=p;
}
else
{
while(q->next!=null)
{
q=q->next;
}
p->next=q->next;
q->next=p;
}
}
return Tree.length;
}
void preorder(STree Tree,int x)
{
LNode *p;
p=Tree.elem[x].firstchild;
if(p!=null)
{
cout<<Tree.elem[x].data;
while(p!=null)
{
preorder(Tree,p->child);
p=p->next;
}
}
else
{
cout<<Tree.elem[x].data;
}

}
void main()
{ int i;
S
Tree T;
initSTree(T);
i=create(T);
cout<<i;
cout<<("线索化二叉树的节点内容 \n");
preorder(T,0);
}















数据结构实验之线索化二叉树.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1416277.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)