马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 一世轻尘 于 2021-3-6 20:49 编辑
第一段代码是正确的广义表复制操作,用的引用传参的方式,第二段代码我想改成指针的方式,但不知道11,,12行的函数参数应该怎么填,求大神void CopyGList(GList >,GList GL)
{
if(!GL) GT=NULL;
else{
GT=new GLNode;
if(!GT) Error("Overflow!");
GT->tag=GL->tag;
if(GL->tag==ATOM)
GT->data=GL->data;
else{
CopyGList(GT->ptr.hp,GL->ptr.hp);
CopyGList(GT->ptr.tp,GL->ptr.tp);
}
}
}
void CopyGList(GList *GT,GList GL)
{
if(!GL) *GT=NULL;
else{
*GT=new GLNode;
if(!GT) Error("Overflow!");
(*GT)->tag=GL->tag;
if(GL->tag==ATOM)
(*GT)->data=GL->data;
else{
CopyGList();
CopyGList();
}
}
}
#include<iostream>
using namespace std;
typedef int ElemType;
typedef enum{ATOM,LIST} ElemTag;
typedef struct GLNode{
ElemTag tag;
union{
ElemType data;
struct{
struct GLNode *hp,*tp;
}ptr;
};
}GLNode,*GList;
|