2026年北京大学软件工程考研专业课真题及答案.docxVIP

  • 2
  • 0
  • 约2.81千字
  • 约 10页
  • 2026-04-09 发布于四川
  • 举报

2026年北京大学软件工程考研专业课真题及答案.docx

2026年北京大学软件工程考研专业课真题及答案

一、数据结构与算法(40分)

1.已知一棵二叉树的先序遍历序列为ABDGHCEIF,中序遍历序列为GDHBAEICF。

(1)画出该二叉树的逻辑结构;

(2)写出其后序遍历序列;

(3)设计一个非递归算法,输出该二叉树的中序遍历序列,并分析时间复杂度。

答案:

(1)二叉树结构:根节点为A,左子树先序序列BDGH、中序序列GDHB,故左子树根为B;B的左子树先序DG、中序GD,根为D,D的左子树为G,右子树为H;B的右子树为空。A的右子树先序CEIF、中序EICF,根为C;C的左子树先序E、中序E,根为E;C的右子树先序IF、中序ICF,根为I,I的左子树为C(此处修正:原中序序列为EICF,C为根,右子树中序为ICF,故I的右子树应为F)。最终结构:

```

A

/\

BC

//\

DEI

/\/

GHF

```

(2)后序遍历序列:GHDBEIFCA

(3)非递归中序遍历算法:

使用栈模拟递归过程,初始化栈为空,当前指针指向根节点。循环:若当前节点非空,入栈并移动至左子节点;否则弹出栈顶节点访问,移动至右子节点。

伪代码:

```

voidInOrder(BiTreeT){

StackS;

BiTNodep=T;BiTNodep=T;

文档评论(0)

1亿VIP精品文档

相关文档