552326241534184564665612试根据迪克斯特拉Dijkstra算法求出从顶点0到其余各顶点的最短路径,即给出所经过的所有顶点。如顶点0到达顶点j需依次经过顶点k1和k2,则最短路径表示为0k1k2j。5已知有一个四元素的数据表75756018已经为最大堆,给出在堆排序过程中进行每一趟交换和调整后的数据表变化。五、算法分析题(每小题6分,共18分)1针对如下算法,回答问题:若数组A
12240380000290450
12,给出算法执行后数组A
的状态。templateclassTvoidu
k
ow
TAi
t
i
tfree0fori
ti0i
iifAi0ififreeAfreeAiAi0free2针对如下算法,回答问题:1若整型数组A81224333895836457,
8,则给出算法返回的结果。2说明算法的功能是什么。i
tu
k
ow
i
tAi
t
if
1retur
A0i
ttempu
k
ow
A
1retur
A
1tempA
1temp3已知二叉树中的结点类型Bi
TreeNode定义为structBi
TreeNodeElemTypedataBi
TreeNodeleftright
f其中data为结点值域,left和right分别为指向左、右子女结点的指针域。参数bt指向一棵二叉树,引用参数x一开始具有的值小于树中所有结点的值。试根据下面的函数定义指出此算法的功能。i
tJBBi
TreeNodebtElemTypexifbtNULLretur
1elseifJBbtleftx0retur
0ifbtdataxretur
0xbtdataifJBbtrightx0retur
0elseretur
1六、算法设计题(每小题6分,共12分)1设有两个整数类型的顺序表A(有m个元素)和B(有
个元素),其元素均以升序排列。把下面函数补充完整,将这两个顺序表合并成一个顺序表C,要求C的元素也以升序排列(表中允许元素重复)。函数中的参数表给出参加运算的三个顺序表A、B与C。从C中得到执行结果。函数中用到顺序表的4个公有函数:Le
gth求表的当前长度;maxLe
gth求表的最大允许长度;getDatai
tk提取第k个元素的值;setDatai
tki
tval修改第k个元素的值为val。templateclassTvoidmergeSeqListi
tASeqListi
tBSeqListi
tCi
tmALe
gth
BLe
gthmp
m
ifmp
CmaxLe
gthcerr“合并后表的长度超出表C的最大允许长度”e
dlexit1i
ti0j0k0i
tavAgetDataibvBgetDataj向下补充剩余的代码2已知二叉树中的结点类型Bi
TreeNode定义为structBi
TreeNodechardataBi
TreeNodeleftright其中data为结点值域,left和right分别为指向左、右子女结点的指针域,根据下面函数声明编写出删除一棵二叉树中所有结点的算法,并使树根指针为空。假定引用参数BT初始指向r