CodeWTF 2017-01-15 03:33 采纳率: 0%
浏览 1232

高一凡 数据结构 题目不理解,求解

/*
void print(ELemType c) //显示错误的地方!
{
printf("%d",c);

}
*/
//头文件省略

define OK 1;

define ERROR 0;

typedef int Status;

typedef int ElemType;

struct LNode

{

ElemType data;

LNode * next;

};

typedef LNode * LinkList;

void CreateList(LinkList &L,int n)

//逆位序(节点插在表头)输入n个元素的值,建立带表头结点的单链线性表L

{
int i;
LinkList p;

L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
printf("请输入%d个数据\n",n);

for(i = n;i > 0;i--)
{
    p = (LinkList)malloc(sizeof(LNode));
    scanf("%d",&p->data);
    p->next = L->next;
    L->next = p;
}

}

void CreateList1(LinkList &L,int n)
//正位序(结点插在表尾)输入n个元素的值,建立带头结点的单链线性表L;

{
int i;
LinkList p,q;

L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
q = L;

printf("请输入%d个数据\n",n);

for(i = 1;i <= n;i++)
{
    p = (LinkList)malloc(sizeof(LNode));

    scanf("%d",&p->data);

    q->next = p;  //注意不是L->next = p,因为每次插入是插在上个节点的后面
    q = q->next;
}

p->next = NULL;

}

void MergeList(LinkList La,LinkList &Lb,LinkList &Lc)

{
LinkList pa = La->next,pb = Lb->next,pc;
Lc = pc = La;

while(pa && pb)
    if(pa->data <= pb->data)
    {
        pc->next = pa;
        pc = pa;
        pa = pa->next;
    }
    else
    {
        pc->next = pb;
        pc = pb;
        pb = pb->next;

    }

    pc->next = pa ? pa : pb;
    free(Lb);
    Lb = NULL;

}

void ListTraverse(LinkList L,void(* visit)(ElemType))

{
LinkList p = L->next;

while(p)
{
    visit(p->data);
    p = p->next;
}

printf("\n");

}

**void print(ELemType c) //显示错误的地方!

{

printf("%d",c);

}**

void main()
{
int n = 5;
LinkList La,Lb,Lc;
printf("按非递减顺序,");
CreateList(La,n);
printf("La = ");
ListTraverse(La,print);

printf("按非递减顺序,");
CreateList(Lb,print);
printf("Lb = ");
ListTraverse(Lb,print);

MergeList(La,Lb,Lc);
printf("Lc = ");
ListTraverse(Lc,print);

}

/*
error C2065: 'ELemType' : undeclared identifier

//不理解这儿:我前面已经用 typedef int ElemType 定义了ElemType,为什么此处还提示这样的错误信息!

error C2146: syntax error : missing ')' before identifier 'c'

//这个我也不明白了

error C2182: 'print' : illegal use of type 'void'

//这个print是通过调用ListTraverse来实现的,就应该是void型,此处为什么不正确

error C2059: syntax error : ')'
*/

  • 写回答

5条回答

  • CodeWTF 2017-01-15 03:34
    关注

    这个不知道怎么理解,求大神指点!感激不尽!

    评论

报告相同问题?

悬赏问题

  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码