作业帮 > 综合 > 作业

求大神编一道c++的题目 有加分 谢谢 求速度

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/19 10:28:08
求大神编一道c++的题目 有加分 谢谢 求速度
题目1:设C={a1,b1,a2,b2,…,an,bn}为一线性表,采用带头结点的单链表hc(hc为C链表的头指针)存放,设计一个算法,将其拆分为两个线性表(它们都用带头结点的单链表存放),使得:A={a1,a2,…,an},B={bn,bn-1,…,b1}。
【例】C链表为:C={a,b,c,d,e,f,g,h,i,j}拆分后的A链表为:A={a,c,e,g,i},B链表为:B={j,h,f,d,b}。
题目2:假设二叉树bt(bt为指向二叉树根结点的指针)采用二叉链表存储结构,试设计一个算法,对二叉树进行后序遍历并计算该二叉树的高度。
【提示】可按先序序列输入该二叉树结点,如12**346***5**,*表示空格,则构造的二叉树如下所示:

1、ha ,hb 为两个链表头, at,bt为临时链表
ha = hc;
if (hc != NULL)
hb = hc->next;
at = ha;
bt = hb;
while (bt != NULL && at != NULL)
{
at->next = bt->next;
at = at->next;
if (at != NULL)
{
bt->next = at->next;
bt = bt->next;
}
if (at != NULL)
at->next = NULL:
if (bt != NULL)
bt->next = NULL;
第二个题的思路是,设定当树高是0,最大高度时0;遍历二叉树,当当前高度大于最大高度时,最大高度变成当前高度,遍一遍就可以了。代码没几行的,自己动动思想,就解决了。