当前位置:启航官网 > 考研报考 > 试题

(10分)阅读下列程序,说明下述程序的主要功能以及函数p1、p2和p3 的功能,

2025-07-12 17:00:23

219

(10分)阅读下列程序,说明下述程序的主要功能以及函数p1、p2和p3 的功能,写出程序运行的结果。

#include "stdio.h"

#include "malloc.h"

#include "conio.h"

#include "math.h"

typedef struct BiTNode

{

int data;

struct BiTNode *lchild, *rchild;

} BiTNode, *BiTree;

int initFlag = 0;

BiTree p1(BiTree &T, int initNum[])

{

if (initNum[initFlag] = 0 || initFlag >= 17)

{

T = NULL;

initFlag++;

}

else

{

T = (BiTree)malloc(sizeof(BiTNode));

T->data = initNum[initFlag];

initFlag++;

T->rchild = p1(T->rchild, initNum);

T->lchild = p1(T->lchild, initNum);

}

return T;

}

int num[8];

int x = 0;

void p2(BiTree &T.int num[])

{

if (T != NULL)

{

p2(T -> lchild, num);

printf("%d", T -> data);

num[x] = T->data;

x++;

p2(T->rchild, num);

}

}

void p3(int num[], int l, int h)

{

int i = l;

int j = h;

int temp = num[i];

if (l < h)

{

while (i < j)

{

while (num[j] <= temp && i < j)

{

j--;

}

num[i] = num[j];

while (num[i] >= temp && i < j)

i++;

num[j] = num[i];

}

num[i] = temp;

p3(num, l, i - 1);

p3(num, j + 1, h);

}

else

{

return;

}

}

void main()

{

BiTree t;

int initNum[24] = {10, 2, 7, 0, 0, 18, 30, 0, 0, 0, 46, 0, 8, 60, 0, 0, 0};

int num[8];

t = p1(t, initNum);

p2(t, num);

printf("\n");

p3(num, 0, 7);

for (int i = 0; i < 8; i++)

{

printf("%d", num[i]);

}

getch();

}

查看答案和解析

【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。

免责声明:本平台部分帖子来源于网络整理,不对事件的真实性负责,具体考研相关内容请以各院校的官网通知为准。 如果本站文章侵犯到您的权利,请联系我们(400-108-7500)进行删帖处理。
下一篇 最后一页

启航教育热门私房课

MORE
  • 26考研VIP领学计划

    全程跟进
    形式:线上+线下
     

    查看详情

    在线咨询

  • 26考研专属VIP班

    联报优惠
    形式:线上
     

    查看详情

    在线咨询

  • 26在职考研课程

    专为在职人定制
    形式:线上
     

    查看详情

    在线咨询

2026考研

小班面授 名额有限 抢先体验

点击预约 

为你推荐

    姓名

    手机号

    获取答案
    扫描上方二维码免费领取学习资料