|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
复制代码 |
|