a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 55|回复: 0

[程序员] 2011年软考程序员考试复习笔试知识点整理2

[复制链接]
发表于 2012-8-2 08:51:15 | 显示全部楼层 |阅读模式
2011年软考程序员考试复习笔试知识点整理2' @. q& n2 k8 M/ W! o
二叉树三种遍历的非递归算法(背诵版)( T5 \2 p% D2 f
  1.先序遍历非递归算法0 c5 a5 E3 E; |1 u8 Y) W+ `
#define maxsize 100  h- a* g; _8 y
typedef struct5 a+ N& v" n# a% X# [( k6 |
{
3 y4 U8 @# {+ v    Bitree Elem[maxsize];
. i* I1 s' \  Y! @* ?    int top;. L3 q( o) I* Q) p! B
}SqStack;
5 R: F6 _% Z; Svoid PreOrderUnrec(Bitree t)9 q( q. ~2 p  f, |6 z
{  B/ T  j9 l0 l# z% B3 F4 t
    SqStack s;- K6 Q1 a1 L/ \! l2 }
    StackInit(s);4 L  `( H" I: z* _6 n
    p=t;
4 l! p# E, |$ L+ [- X  [( \    while (p!=null || !StackEmpty(s))
! W  g( O- a- I( P    {
4 L( a" D, A8 `3 U4 O3 V# p9 e  o        while (p!=null)            //遍历左子树
! a, ], g# y& D  H0 K        {
) v: o- P: P7 t3 }" O            visite(p->data);* B7 D: Z0 \/ e4 D9 o( S) w
            push(s,p);" O0 O5 Y1 X# _( x) i( _  u
            p=p->lchild;      * n) J  L/ L2 ~  [( Y! B
        }//endwhile( _3 H7 Y. K) c* H9 Q
        7 m7 o# O2 F3 Z8 i$ C) d1 h
        if (!StackEmpty(s))        //通过下一次循环中的内嵌while实现右子树遍历
8 U+ Z5 J8 M3 Q+ I: \$ w        {# N. |3 Y4 \+ f1 O; w( i0 q
            p=pop(s);( `7 r/ ?6 W$ g) M
            p=p->rchild;       0 s$ `1 l0 _* ]" o& B# U8 K% ]8 Y
        }//endif            
6 q, x) u( a1 ]: h3 E4 w$ H    }//endwhile   
1 a3 A' X) o! |7 I8 C$ f}//PreOrderUnrec
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-18 09:52 , Processed in 0.299706 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表