2016最新广工anyview数据结构答案

2026/4/24 13:24:22

} BiTNode, *BiTree;

可用栈类型Stack的相关定义: typedef struct {

struct BiTNode *ptr; // 二叉树结点的指针类型 int tag; // 0..1

} SElemType; // 栈的元素类型 Status InitStack(Stack &S); Status StackEmpty(Stack S);

Status Push(Stack &S, SElemType e); Status Pop(Stack &S, SElemType &e); Status GetTop(Stack S, SElemType &e); **********/

void PostOrder(BiTree T, void (*visit)(TElemType)) /* 使用栈,非递归后序遍历二叉树T, */ /* 对每个结点的元素域data调用函数visit */

{

if(T==NULL)return ; Stack s; InitStack(s); SElemType e; e.ptr=T; e.tag=0; while(1){

while(e.ptr!=NULL){Push(s,e); e.ptr=e.ptr->lchild; }

while(StackEmpty(s)==FALSE){ Pop(s,e);

if(e.ptr->rchild!=NULL){ if(e.tag==0) {

e.tag=1;Push(s,e); e.ptr=e.ptr->rchild; e.tag=0;break; } }

visit(e.ptr->data);} if(StackEmpty(s))break; } } /**********

【题目】二叉树采用三叉链表的存储结构,试编写 不借助栈的非递归中序遍历算法。 三叉链表类型定义: typedef struct TriTNode { TElemType data;

struct TriTNode *parent, *lchild, *rchild; } TriTNode, *TriTree; **********/

void InOrder(TriTree PT, void (*visit)(TElemType)) /* 不使用栈,非递归中序遍历二叉树PT, */ /* 对每个结点的元素域data调用函数visit */ {

TriTree p=PT, pr; while(NULL != p) {

if (p->lchild != NULL) { p = p->lchild; //寻找最左下结点 } else {

visit(p->data); //找到最左下结点并访问


2016最新广工anyview数据结构答案.doc 将本文的Word文档下载到电脑
搜索更多关于: 2016最新广工anyview数据结构答案 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219