• 2022-06-12
    试编写递归算法,逆转广义表中的数组元素。例如:将广义表:(a,(b,c),) , (((d),e),f)逆转为: ((f.,(e,(d))),(() , (c,b)) ,a).
  • void GList_Reverse (GList A)//递归逆转广义表A{GLNode*ptr[MAX_SIZE];if (A->tag&&A->ptr.tp)//当A不为原子且表尾非空时才需逆转{for (i=0.p=A;p;:p=p->ptr.tp,i++){if (p->ptr.hp)GList_Reverse (p->ptr.hp);//递归逆转各子表ptr[i]=p->ptr.hp;}for (p=A;p;p=p->ptr.tp) //重新按逆序排列各子表的顺序p->ptr.hp=ptr[--i];}}//GList_Reverse

    内容

    • 0

      对于一组广义表A,B(a,b),C(c,(e,f,g)),D(B,A,C),E(B,D),其中的E是() A: 线性表 B: 纯表 C: 递归表 D: 再入表

    • 1

      广义表A((a,b,c),(d,e,f))的表尾为()。

    • 2

      广义表((a,b,c,d),e,(f,g))的表尾是()。 A: e,(f,g) B: (e,(f,g)) C: (abcd) D: (),e,(f,g)

    • 3

      广义表((a),(b,c),(d,e,(f,g,h)))的表尾是 。

    • 4

      以下关于广义表的叙述中,()是不正确的。 A: 广义的元素可以是子表 B: 广义表可装其他广义表所共享(引用) C: 广义表可以是递归的表 D: 广义表不能为空表