数据结构

位置:IT落伍者 >> 数据结构 >> 浏览文章

数据结构 6.7 建表达式的二叉树算法演示


发布日期:2021年08月20日
 
数据结构 6.7 建表达式的二叉树算法演示

希赛教育计算机专业考研专业课辅导招生

希赛教育计算机专业考研专业课辅导视频

希赛教育计算机考研专业课在线测试系统

BiTree CrtExptree( char* exp )

{

// 建立由合法的表达式字符串 exp 确定的只含二元运算符的

// 非空表达式树返回其存储结构二叉链表的根结点指针

InitStack(S); Push(S#); // S为暂存运算符的栈

InitStack(PTRS);// PTRS为暂存子树根指针的栈

p=exp; ch=*p;

while(!(GetTop(S)==#&& ch==#))

{

if (!IN(chOP)) CrtNode( t ch ); // 建叶子结点

else {

switch (ch) {

case(: Push(S ch); break;

case): {

Pop(Sc);

while (c!=()

{ CrtSubtree(tc); Pop(Sc);} // 建子树直至运算符的栈顶为(

break;

}

defult:{

while (!GetTop(Sc) && (precede(cch)))

{ CrtSubtree(tc); Pop(Sc);}

// 建子树直至运算符栈顶运算符的优先数低

if ( ch !=#) Push( Sch);

break;

} // defult

} // switch

} // else

if (ch !=#) { p++; ch = *p; }

} // while

Pop(S c); Pop( PTRS t );

DestroyStack(S); DestroyStack(PTRS);

return t;

} // CrtExptree

算法的执行过程如动画所示

上一篇:数据结构 3.8 有序表中的链表归并

下一篇:数据结构 6.8 中序线索链表遍历算法演示