范文无忧网面试笔试笔试回答

后序遍历非递归算法

11月28日 编辑 fanwen51.com

[层次遍历算法笔试题]层次遍历算法 二叉树的数据结构 structBinaryTree { int value; 不写模板了,暂时用整形代替节点的数据类型 BinaryTree *left; BinaryTree *right; }; BinaryTree*root; 已知...+阅读

后序遍历非递归算法

#define maxsize 100

typedef enum{L,R} tagtype;

typedef struct

{

Bitree ptr;

tagtype tag;

}stacknode;

typedef struct

{

stacknode Elem[maxsize];

int top;

}SqStack;

后序遍历

void PostOrderUnrec(Bitree t)

{

SqStack s;

stacknode x;

StackInit(s);

p=t;

do

{

while (p!=null) 遍历左子树

{

x.ptr = p;

x.tag = L; 标记为左子树

push(s,x);

p=p-lchild;

}

while (!StackEmpty(s) s.Elem[s.top].tag==R)

{

x = pop(s);

p = x.ptr;

visite(p-data); tag为R,表示右子树访问完毕,故访问根结点

}

if (!StackEmpty(s))

{

s.Elem[s.top].tag =R; 遍历右子树

p=s.Elem[s.top].ptr-rchild;

}

}while (!StackEmpty(s));

} PostOrderUnrec

延伸阅读:

程序员递归面试问题及解析面试例题 2:八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是 19 世纪著名的数学家高斯 1850 年提出:在 88 格的国际象棋盘上摆放 8 个皇后,使其不能互相攻击,...

推荐阅读
图文推荐
栏目列表