.二叉樹以鏈方式存儲有三個域數據域data左右孩子域lchildrchild樹根由tree指向 現要求按層次從上到下同層次從左到右遍歷樹下面算法中用到addx(p)將指針p進隊delx( )將隊頭元素返回並退隊notempty在隊不空時返回true否則為false將算法補充完整:
PROC processnode(p);
IF()_______THEN [write(p^data); ()_______ ]
ENDP;
PROC trave(tree);
write(tree^data); ()_______;
WHILE notempty() DO
[ r:=delx( ); processnode(r^lchild); processnode(()_______)]
ENDP;【南京理工大學 三 (分)】
閱讀下列程序說明和程序填充程序中的______
【程序說明】本程序完成將二叉樹中左右孩子交換的操作交換的結果如下所示(編者略)
本程序采用非遞歸的方法設立一個堆棧stack存放還沒有轉換過的結點它的棧頂指針為tp交換左右子樹的算法為
()把根結點放入堆棧
()當堆棧不空時取出棧頂元素交換它的左右子樹並把它的左右子樹分別入棧
()重復()直到堆棧為空時為止
typedef struct node *tree;
struct node{int data; tree lchildrchild;}
exchange(tree t)
{tree rp; tree stack []; int tp=;
()_______
while (tp>=)
{()_______
if(()_______)
{r=p>lchild; p>lchild=p>rchild; p>rchild=r
stack[()_______]=p>lchild; stack[++tp]=p>rchild;
}
}
} 【中科院自動化研究所 二 (分)】
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/sjjg/201311/23474.html