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

2026/4/24 13:25:37

二叉链表类型定义: typedef struct BiTNode { TElemType data;

struct BiTNode *lchild, *rchild; } BiTNode, *BiTree; **********/

int Leaves(BiTree T)

/* 计算二叉树T中叶子结点的数目 */ { int i=0;

if(T==NULL)return 0;

if(T->lchild==NULL&&T->rchild==NULL) return 1; i+=Leaves(T->lchild); i+=Leaves(T->rchild); return i;

} /**********

【题目】试利用栈及其基本操作写出二叉树T的非递归 的先序遍历算法。 二叉链表类型定义: typedef struct BiTNode { TElemType data;

struct BiTNode *lchild,*rchild; } BiTNode, *BiTree;

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

typedef BiTree 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 PreOrder(BiTree T, void (*visit)(TElemType)) /* 使用栈,非递归先序遍历二叉树T, */ /* 对每个结点的元素域data调用函数visit */ {

Stack S; InitStack(S); BiTree p=T;

TElemType temp= T->data; //首元素赋给temp,由于算法问题防止循环两遍 Push(S,p); while(true){ if(p){

visit(p->data);

if(p->rchild!=NULL) Push(S,p->rchild); //栈特点:后进先出,故遍历左结点时一路把右结点压入栈

p=p->lchild; } else

Pop(S,p); //遍历完左结点,弹出对应右结点,继续遍历 if(temp==p->data) break; //结束条件 } } /**********

【题目】试利用栈及其基本操作写出二叉树T的非递归 的后序遍历算法(提示:为分辨后序遍历时两次进栈的 不同返回点,需在指针进栈时同时将一个标志进栈)。 二叉链表类型定义: typedef struct BiTNode { TElemType data;

struct BiTNode *lchild,*rchild;


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

下载本文档需要支付 10

支付方式:

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

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